How do you cut a clean hole into an object that has been subdivided?
When 'they' say subdivision surface works best with quads, they mean that if you can get your pre-subdiv model to only use quad faces, you get a better result. Generally you would want to make the hole before applying the subdivision modifier.




To avoid 'cutting circles', you need to add supporting geometry around edges that you want to 'harden'. There are many ways to go about this. You can do it manually by simply adding additional edge loops and sliding them into place.



You could also use a bevel modifier above your subdivision modifier in the stack.