INTENT(IN) is not required to allow aliasing of unmodified dummy arguments.
Yes, but in practice no compiler checks whether an argument with no INTENT is modified or not, or could alias with something else or not. So the compilers tend to trust the programmer. With INTENTS, it’s obvious and much easier to check.
Dummy argument aliasing has nothing to do with INTENT.
I believe the NAG Fortran compiler does check for some aliasing scenarios if not all. The argument intent is irrelevant.