Basically the idea is to separate your system packages and your applications.
The system packages are installed and updated “atomically” i.e. in transactions. If a transaction fails, results in a broken system, or you just don’t like it, you can rollback anytime.
Applications on the other hand are usually installed in a containerized form. Basically, flatpak. You should avoid installing applications through the system package manager.
CLI apps is where it all gets interesting, and usually people use distrobox, docker/podman or toolbx to run stuff in containers. Although the universal blue project comes with brew prepackaged for when you want CLI apps installed system-wide without juggling containers.
The benefit is that your OS and your apps are separate. No dependencies breaking or conflicting. And if something does break, well just roll back.
On Android you can just install another keyboard if your current one doesn’t have a setting for this.
If I had to guess a business case, I’d say that predictive text as a feature gives you a “legitimate reason” to send your typing data to Google or whoever to train the prediction engine, and they want that data.
https://controld.com/free-dns has free DNS resolvers that do the same thing as a pihole. you just go to your phones “Private DNS” setting and at it there. this will work for non-browser apps as well!
I have seen some juniors really shoot themselves in the foot with rebasing, and I’ve been there as well before. I agree it can be useful, but it definitely requires understanding of what is going on :P