LXC puts an entire Linux distro in a container, so I can use shells, install packages, and configure/manage things like I would a virtual machine. It’s useful when I want more flexibility than the single-app model offered by docker and flatpak. I haven’t tried using it for a desktop environment (like Plasma or GNOME), but I have used it for GUI apps.
No, I don’t always build apps from source for use in an LXC container. I usually let the guest’s package manager (like apt) install them.
Are you aware of Qubes OS? It’s made specifically for desktop software in containers.