Because as soon as Apple publish something as an API, they can't change the method because third party apps could now be depending on it. As long as the API is private and undocumented, Apple can change the method from release to release as they see fit.
But what about making them private APIs that also require authorisation.
Many do require this, but there are current sandbox limitations that make this harder to change quickly.