What's the correct way of cutting holes in Blender?
There is not a single best way and there is really no method that will always give you good topology without a need for some further work.
Since you asked for non-destructive, you've pretty much limited yourself to using boolean operations to cut the holes.  There are add-ons, such as HardOps, that will help you with this process, but none of them will always produce perfect topology every time. Or you can do the same thing manually.
Create your object:

Create a second object to use to cut the hole

Position the cutter where you want the hole

Apply a boolean to the first object, using the 2nd object as the cutter, and set it to difference:

Nothing will appear to happen because the cutter is still visible.  A common technique to resolve this is to change the viewport visibility of the cutter by setting 'display as' to wire:

When you do this, you can still see the cutter's outline, but also the cut it has made:

But you also have to disable rendering the cutter:

As you can see from the matcap display, this works reasonably well:

There are a few other things that can help visibility.  Setting the the cutter to 'shade smooth', and enable auto-smooth for the object often helps, for example.