sorry for late reply.
The bundles generated by wro4j are not stored as files, rather you can see them as virtual resources stored in memory being served by endpoint corresponding for each group. Every time the application is started, the virtual resource is computed lazily (after the first request) and stored in memory for serving subsequent requests.
The reloadCache endpoint is useful in development, because the css & js resources are changed frequently and virtual resource needs to be generated from scratch after a resource has changed. It very unlikely that you tweak your resources in production without restarting it, therefore the reloadCache endpoint is not exposed for production (however it is possible to configure the endpoint to work for non debug mode as well).
I suspect that the real reason of why you see the old resource even after restarting the application is the caching headers. This is something you can configure (by using far expiry date). The best practice is to use aggressive caching by combining far expiry date with generating unique url (which encodes the version number of the bundled resources in its path).
I don't really see the difference between restarting the AppEngine and deploying a completely new version of GAE. This shouldn't really matter if the app is deployed with GAE or somehow else.
Let me know if that helps or if you have more details which would help to understand the problem.