I wasn't suggesting a change. I believe you that this is the correct cast to choose.

Whether or not to error on the VARCHAR to INT is a downstream issue and unrelated to UNION.