Why I can access private module variable in this program?

Fortran standard has had to, in its history including recent, make exceptions about backward compatibility and codes get broken. Fortran 2023 will do so as well. Thus the proposal remains to override backward compatibility considerations for two more aspects, implicit mapping and implied save.

As to the rest of your comments, it comes to the basic question, “For whom Fortran, for what?” Re: things such as wrapper, config file, etc. - been there, tried that and it didn’t work out well at all with large and/or distributed teams spread out globally, particularly when a lot of restrictions from global and/or local IT department started getting enforced. So should the language be for certain groups of users only?