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.