I suppose you could try that, and fall back on full data relaying when it doesn't work. Should save a lot of bandwidth.
Of course, that might be a lot of work to implement, not saying it's easy!
1. Try various techniques that might trick the firewalls on both ends to let the connection through. This requires a relay for the initial negotiation only.
2. If (1) fails, then use a relay for everything.
[1]: https://tailscale.com/blog/how-nat-traversal-works/
I suppose you could try that, and fall back on full data relaying when it doesn't work. Should save a lot of bandwidth.
Of course, that might be a lot of work to implement, not saying it's easy!