BillHurdle
First of all, I think all of your questions are easily answerable, although I will refrain from answering them all because I don't think I can phrase my answers to them in a clear enough way. And frankly, I'm not sure I am comprehending points 2-4.
You are writing that you do not have time to report or read documentation. Therefore, my first normative statement is this: you should find time to read the official documentation on https://grapheneos.org and, if you do not find answers, please search this forum. Then, if you are still struggling with your questions, you are of course more than welcome to make a thread.
I am having a bit of a hard time understanding why you do not have time to read official documentation, and at the same time writing a lengthy post which surely demands lengthy replies from community members, if they are to be of quality. If you do not have time to first read official documentation, and search this forum, I must nearly assume that you do not have time to read this very reply. It is not my intention to be cross, and I hope this doesn't come across as rude.
It's my decision to spend time writing this, but after having done so, I do partly regret doing that. Still, since it's already written, here it is. In the future, I will avoid replying to such threads, other than pointing towards official sources.
1.
"I was really stunned once, on a stock Android phone, to find that it remembered me from months ago, even though I had MAC randomization enabled!"
You are thinking about captive portals, which show up mostly on public Wi-Fi networks where the network wants you to provide some form of registration, accepts its terms of use, etc.
"I was really stunned once, on a stock Android phone, to find that it remembered me from months ago, even though I had MAC randomization enabled!"
Your stock Android phone does not implement per-connection randomized MAC, as GrapheneOS does by default. In practice, that means that the network is unable to identify you based on the MAC address the next time you connect to that network.
If you would like to avoid receiving the captive portal on each time you connect to a specific network, you can go to the network settings of that network and change it to either "Use per-network randomized MAC" or "Use device MAC". I recommend the former, unless you have a clear reason to reveal your real MAC address to the network.
There's nothing to worry about by sticking to the default settings. The defaults are sane and provides Wi-Fi privacy beyond what the stock PixelOS provides. You can adjust them as desired.
Wi-Fi privacy on GrapheneOS goes far beyond just randomizing MAC addresses per-connection. More info here: https://grapheneos.org/usage#wifi-privacy
There might be some benefit to showing the user a brief descriptive text within the OS about randomized MAC and the causes of captive portals reappearing on each connection. But I'm not a UI designer, merely a QA tester, and I don't know how many users would find this helpful in practice.
5.
"Do predictive text and/or spell checking hit the internet?"
The GrapheneOS keyboard app – which is the default – does not make network connections. It does not send your typing data to a server. You have nothing to worry about here.
6.
"The only problem is that when the app lands in the other profile, it's automatically granted network permission!"
This is expected. And in my opinion, desirable. The secondary user could be another person, who could desire that the app connects to a network by default. If it didn't, they might be confused as to why it doesn't work. The user of the Owner profile might have entirely different needs and preferences.
7.
"If someone hotspots through your phone, it's not obvious that their traffic doesn't hit your network stack, so you could be forgiven for thinking that you're helping them by covering them with your VPN."
You could be forgiven, if you didn't know that the hotspot feature follows the same logic as Android's per-profile approach to VPN connections. It avoids giving a secondary device and secondary user the same exit IP.
If the VPN from your Owner/secondary profile was routed through the hotspot, that device and the services it uses would know the exit IP of your Owner/secondary profile. I can see that sharing the VPN cross-devices might be of some convenience for a certain group of users, but it is an approach that is detrimental to privacy, and there is a reason Android doesn't do this. Note that this is the approach taken in upstream AOSP, and not something GrapheneOS has changed.
"Absent that, some sort of notification about this would be useful when hotspot is enabled."
Perhaps useful to some users. Other users might become confused as to why the OS is suddenly showing them a notification about VPNs, when they might not be using one or might not even know about VPNs. They might misinterpret the notification text. I guess there could be some brief text in the Hotspot interface. Perhaps you could make a feature request on Github?
8.
You can solve this by running an always-on VPN with "Block connections without VPN" enabled for the VPN in the Owner profile. If you are using secondary profiles for all your apps, and have no third-party apps installed in the Owner profile, the connections that are made are documented here: https://grapheneos.org/faq#default-connections
I don't see the logic behind this concern, and it does not lessen the security of your device. But you may have the threat model of needing to hide the default GrapheneOS connections from your ISP or the network. You can use a VPN.
Please also see this: https://grapheneos.org/faq#encryption
Sensitive data is stored in user profiles. User profiles each have their own unique, randomly generated disk encryption key and their own unique key encryption key is used to encrypt it. The owner profile is special and is used to store sensitive system-wide operating system data. This is why the owner profile needs to be logged in after a reboot before other user profiles can be used. The owner profile does not have access to the data in other profiles. Filesystem-based encryption is designed so that files can be deleted without having the keys for their data and file names, which enables the owner profile to delete other profiles without them being active.