Un código loco. El punto principal es:SET
podría generar un error para las variables mysql.
Por ejemplo.
SET @value = 0;
SET SESSION sql_mode = if(@value, @@SESSION.sql_mode, 'something wrong uphere');
Daría como resultado ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'something wrong uphere'
y la ejecución se detendría.
Este enfoque no es semántico pero funciona.