In case of non instanceable portlets there is an easy workaround: The embedded portlets use the preferences of the same portlets which are on simple pages.
Here are the steps to walk around the problem:
1. Create a remote staging environment.
2. Deploy a non instanceable portlet. (both staging and live)
3. Create a page template and add the portlet to this template.
4. Create a page based on this template on staging side.
5. Publish to live. In this case the template has to be explicitly imported on live site in order to run a successful publish.
6. After the initial publish, modify the test portlet's preference on its configuration screen.
7. No changes are exported to live.
8. Upon testing I realized that not the latest change is picked up, so I had to remove the portlet from the template, then publish once to clear the live site's setup.
9. Create another page and add the portlet there and configure it.
10. Publish to live, including this newly created page too.
11. Add the portlet back to the page template without configuring it.
12. Verify on staging side that the preferences are not picked up from the portlet which is already on another page. Reconfigure it.
13. Publish everything to live
14. Later on to modify the portlet preferences on live it is enough to publish only the page where the portlet got configured.