Flink does support rename column after casting.
The exception is not caused by cast. It is caused by mixing of types, for example, the query
"CASE 1 WHEN 1 THEN true WHEN 2 THEN 'string' ELSE NULL END"
will throw the same exception since type of true and 'string' are not same.