I know. We know that. We all know that. But it's convenient to keep a basemap in my MXD to have some orientation. Most people do that. Manually removing the Basemap Layer (as well as clearing the selected features 00021: Feature selections are not supported) is annoying and time-consuming, because it has to be done before every publish process, and to continue working with the local MXD, the Basemap will usually be added again.
I would love the service editor to just throw out the Basemap Layer when publishing the service instead of returning "Error 00037: Basemap Layers cannot be published directly to a service". You might give back a warning, that the uploaded map document has been altered, but that should be it.