REF: shallow_copy->simple_new/rename
> can you completely remove _shallow_copy?

Short answer: i think so.

Use cases that are just `self._shallow_copy()` could be replaced with `self.view()` (or implement a `self._view` fastpath) and `self._shallow_copy(name=foo)` that could use `self.rename` (or implement a `self._rename` fastpath).

There's one usage that can't be removed until #38140 (or we implement an equivalent shim in `Categorical._get_unique_index`)

That leaves 7 usages in core.indexes which i think can use simple_new directly (though MultiIndex may throw a wrench in that) Want to move forward with the rest of the shallow_copy usages? yep i think that would be good 