Lowest common denominator? They have to round trip due to various NAT/router/firewall/App BS.
Your average ‘idiot’ can barely get a managed App to work, and that typically requires some kind of cloud endpoint to co-ordinate.
Other stuff is the land of prosumer.
You only need an external server if you want to make it so the end user can access their device remotely. Otherwise, an app can very easily just scan the network for the device. Heck, the app itself could be the thing that sets up the device on the network in the first place.