The replaceCurrent method has been an anti-pattern for some time. It replaces the existing overlay and updates OverlayManager internals. It can be avoided by using a wrapping component e.g. associate a single Overlay with a single element and use the promisedView to alter views within the overlay itself.
The only overlays using replaceCurrent are the category overlay (taken care of in the refactor T212465) and the editor overlays.
A proof of concept demonstrates what's possible without the replaceCurrent method in the codebase:
I (@Jdlrobson) can provide code if others who know the editor better can provide review.