The power of text-based manipulation is that you don't have to learn a different set of hotkeys for different types of material.
Or do the reverse — find all usages of a CSS class from its definition (again: do so reliably, it's not a simple grep).
Find all references to a particular database column (in SQL queries across the project, foreign keys in other database tables, and ORM models)? Same hotkey.
Stuff like code selection works reliably since IDE work with code on an AST level and you're asking it to select the current AST node (and not the "current text block"), going up the tree as needed.
And so on.
And the weakness of text-based manipulation is that it views code as characters rather than as semantic data.
Modern IDEs either have their own semantic code operations, or use language servers to actually understand the code rather than just work with character strings. This is vastly more reliable when doing refactoring or project-wide navigation. Text-based approaches are a crude hack by comparison.