Ich seh das nicht als tragisch an. Ob in dem SQL-Statement zuerst ein String erkannt wird und anschließend die Zahl daraus konvertiert wird, oder ob die Zahl direkt aus einem Zahlenliteral konvertiert wird, macht das Kraut nicht fett. In beiden Fälle steht sie da als String.
Aus der hiesigen Argumentation finde ich es auch nicht weiter schlimm. Aber: damit kann man sich bei Mysl/MariaDB böse Performanceeinbußen einfangen, wenn man in einer Query z.B. auf '1' abfragt, obwohl es sich um ein indiziertes Zahlenfeld handelt. Wie immer, merkt man natürlich erst bei entsprechend großen Datenmengen. „Klappen“ tuts auch mit dem Cast.