Depends.
I have a couple of apps on my computer that do exactly that.
I am looking forward to learning how it does work...
> I am looking forward to learning how it does work...
It's basic sockets. If you call connect() when the internet is disabled, the errno is ENETUNREACH.
The higher-level API are built on sockets. If any apps are misbehaving, they're simply badly coded.
You're not thinking like a systemd developer. The right thing to do is to ignore all anecdotes and direct evidence that a problem exists. I am talking about systemd renaming your network interfaces because you added or removed hardware.