my take on this is that everything is relative.
When you need to change code, the code is for you, when its executed its for the machine.
If a code is functional it has the potential of being read.
The human and cooperative being in you should make it easily readable to other humans, but ultimately, conventions aside, the readability of code might sometimes be in the eye of the beholder.
The easier the code is to be read by people, the easier it can be changed and maintained, since evolution benefits from the number of contributions/contributors you apply to a problem, this type of code can be declared better than unreadable code.
But ultimately, the code is to be made into a set of instructions to the machine.
Human intentions translated into something the machine can follow, so the code is for both , one at a time.