The following are from my own adventures in heavily customizing headscale and interacting with tailscale client:
Nodes get "NetMap" streamed to them from control plane, which contains information about nodes accessible to them. Without a node showing up in netmap, you can't start discovery to connect to that node - discovery protocol follows once you get information for given node, and allows continued connection in case NetMap gets stale (but if ACLs are changed and reach the other node, it's going to filter you out, and you're not going to know about it without initial info from NetMap)