Fwiw as I understand it data portability is possible without a custom domain, aside from your handle/name. A custom domain only seems necessary if you want to prove and maintain your identity across AuthTransfer services/platforms that permit/enable custom domains in handles. It's basically a more direct form of the website verification one may find on federated platforms like Mastodon.
Without it you'd be jumping between subdomains and top-level domains in your username/handle similar to how you do so on ActivityPub platforms, i.e. @uniquename.bsky.social -> @uniquename.otherATprotoplatform.tld.