How to cut a circular hole into a curvy shape and have a perfectly smooth surface without using the Shrinkwrap technique? I usually use the Shrinkwrap approach to cut any kind of hole into a curvy shape. Its work flow is to subD the base mesh to 2 levels, shrinkwrap it to the same mesh (called guide mesh) that has been subD'ed to 4 levels, then proceed to cut a hole in the base mesh. This results in a perfect smooth shape. 

For this method to work, the shrinkwrap modifier must be after the SubD modifier, so I can't use this technique if I want to export the base mesh as a fbj/obj file for others to work on, because I can't apply all the modifiers. If I try to apply the shrinkwrap modifier without applying  the SubD modifier first, then the result still looks not good enough because it only shrinkwraps a low poly version.

I'm getting stuck at this point, trying several methods but to no avails:


I tried to make sure that the faces which will be insetted are planar. This only works on a surface not extremely curvy.
I tried to apply the SubD/Shrinkwrap to achieve the perfectly smooth result and then use Decimate to unsubdivide it, with a naive belief that it would magically revert to the exact original topology, which it doesn't.
I tried to use the Knife Project tool to cut the circle into the mesh. Still same result.
I tried to use Data Transfer to transfer the normals information to the mesh. This works, but it brings us back to the orignal problem, because the Data Transfer solution requires geometry to work well, just like the Shrinkwrap solution.


I always get some subtle pinching like in the following image:



What I want to achieve:



So, how can I cut a circular hole into a curvy shape and have a perfectly smooth surface without using the Shrinkwrap technique?

My Blend file: cuttingHoleIntoACurvySurface.blend
The answer is just to have enough geometry to support the holes. The shrinkwrap modifier has spoiled Blender user for being able to make a smooth surface without thinking much about topology/geometry usually required.