This follows the general direction of D118736 that _LIBCPP_HAS_NO_INCOMPLETE_RANGES does *not* guard anything outside of the std::ranges:: namespace itself. This means we must permit ranges::less etc. in no-ranges mode; that seems fine to me.
I believe this doesn't need to be merged to release/14.x, unless @ldionne you want to also merge eea3d90af181fdb66e583af53401e80ddfcc8cd1 and 8e979460bb27610d574733ca5b75afae0cdfb3c9 to release/14.x? (Again, the only logic to that would be so that we could brag that a sensible, non-arbitrary subset was implemented in libc++14.)