Intel Fortran doesn't enforce argument kind conformance?

From the Intel Fortran Reference Manual on Build Process Errors:

NOTE:

If you have a question about a compile-time error, submit your question to the Intel® Fortran forum.

Another option you could use is to raise all warnings to errors: -warn all,errors.

Edit: just saw your edit. I agree - the casting between integers is a suspicious default.