No. This hasn't changed. It would be a really drastic change to the language.
This is a counterintuitive thing for people people. It's commonly stumbled over. In other languages that aren't based on symbolic manipulation, you wouldn't see this problem, but an error message instead.
If you run (a = a + 1) in a fresh kernel (without definitions) you'll see that it goes on an infinite loop. The key is that you need to define to a before you can make changes to it. So you should run something like
a = 0;
a = a + 1;
In most other programming languages, you would get an error message if you tried to increment a without first giving it a value. That doesn't happen in Mathematica because it allows you to work with addition symbolically.