Wrong mindset.
The fact that you can override certain protection levels at runtime doesn't mean that you are suddenly supposed or allowed to write bad source code now (or in the future).
You don't use these keywords to establish guarantees at runtime. That is a desired side effect, but not the real point of these keywords. You mainly use them to express intention! To make your source code better to understand for human readers. That has nothing to do with what you can do at runtime using reflection.
Giving another example: the javac compiler will turn your source code into byte code; and the JVM just-in-time compiler will turn the java byte code into machine code at some point. When we follow your logic - should we stop writing programs in Java, and instead write machine code directly? You know, because at runtime, there will be only machine code anyway?
( I know, not the greatest comparison, it is only meant to underline the fact that runtime features have nothing to do with source code content).
Beyond that: there is still a Security Manager around that might prevent you from disabling this protection.
And I hope you understand that using reflection should only be done in very specific corner cases. Reflection is a performance killer; it is extremely cumbersome to use, and also very error prone. It is one of these features of Java that you only use when you have no other choice. It is not in the set of "normal" tools that you pick for "everyday tasks".
Finally: the module concept that java 9 introduces will no longer allow you to access anything inside a module - only the public exported elements will be accessible. And that is true for reflection as well. It is a bit more complicated, and there are command line switches to change behavior - but the times when could easily get anywhere are basically numbered.