Note: I work on App Engine. Go 1.11 supports all legacy 1st generation APIs. It's in the first section of the doc [2] that you posted although perhaps we can make this even clearer. We maintained support for these APIs precisely to make this migration extremely straightforward for our existing users as we moved to a more modern underlying technology stack and a version of Go supported by the language community. We absolutely want App Engine to be a place you can confidently build a business upon.
Was this done proactively or reactively after many months of negative feedback? If it was the former that gives me a lot more faith in app engine after trialing in some years ago and giving up on it.
Proactively. It was in the initial email about the Go 1.9 turndown sent to users. We definitely understand that any code change is painful, no matter how trivial. Supporting legacy APIs on a modern Go runtime seemed like the right balance between keeping up with the language community while bringing along our existing users.