I would thing the devil were in the details.
In fact a lot of the questions would fail if not for the fact that the numeric in the question is in fact a numeric.
The trap, if we can call it that, is that no none-character values were there to coax the cast. If #2 had been constructed like the others, thus having the number '4' as a number in stead of a string, the statement would have done the cast and no error would have followed.
Inserting a character i e.g. #4 would of course cause that one to fail as well.