O MySQL é bastante negligente sobre a maioria das coisas, por padrão, corrigindo esses erros, fazendo tudo o que pode para não errar.
O MySQL tem um modo estrito que não permitiria esse comportamento
http://dev.mysql .com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict
Para mais informações.
Esse 'recurso' também pode causar problemas de desempenho, comparando um sting com um int indexado torna o índice inútil (em alguns casos, às vezes o otimizador pode detectar isso e lançar apenas a entrada)