Nothing blocks Nostr clients from sending Nostr events to one another directly, without a relay.

Both clients need to be online and show some IP that the other will connect into. Totally feasible.

We can even use a Push Notification server to send phone to phone messages with background apps. But that's kinda like having a relay in the middle.