Federation is on by default on all instances. As soon as you search and subscribe to remote communities they'll start federating. So far so good on my little one user instance.
no you need a domain - if you already have one you can use a subdomain, e.g. lemmy.mydomain.com - then you deploy a server, point the (sub)domain to it, then install and configure lemmy. Then, if you're so inclined, you can create communities on that instance that federated systems can participate in. The content is hosted on your instance but the subscribers are logging in mostly though other instances.
Do you know -- do most people run cloud instances, or just a spare computer sitting in the closet collecting dust? I'd be tempted to looking into my own, but don't want to spend a small fortune keeping a large EC2 just because it sounded interesting one weekend.
I can't speak for everyone, but when GPU prices were super high, I bought a prebuilt withe a graphics card for cheaper than just buying the card itself. I pulled the card out of that (swapped with my old one, actually), and now use that prebuilt with my old GPU as a server.
You can absolutely host at home if youve got the speed and bandwidth. Just a matter of port forwarding and making sure security is good, maybe upgrade to a prosumer firewall. I use Unifi and host RUST game servers.