I suppose, users may define views to adapt the 3d geometry as 2d
and pass to 2d-aware algorithms in unified form.

Exactly. Whatever the approach, I don't think anybody would naively pass the geometries as is and be surprised it doesn't compile.

Just FYI I have just committed variant awareness for covered_by. This one is interesting as it has both binary variant resolution and geometry-dependent default strategy.