In Citymapper I'd like it down download and cache maps when on wifi or when in the uk, but only do the minimum when roaming.
On laptops likewise, sometimes a connection is metered - not just tethered, but wifi on trains/planes, and even some home connections.
Determining when a device is on a metered connection or not is the tricky option, probably inpossible. Perhaps something device manufacturers could incorporate into network settings (a metered/non metreed flag on the connection)
I think that your second sentence contradicts your first. Making the determination automatically is, indeed, probably tricky; but making the determination by consulting a user-set flag is trivial. I'm too wedded to my Mac to commit to a Windows machine, but I love that Windows 10 has such settings (necessary to prevent it from auto-updating), and wish I could make my Mac do it.
It is a source of some frustration that devices connected to a tether will assume 'wifi therefore unmetered' and do all the non-time-critical stuff (such as application updates) that you'd really rather that they do on a genuinely unmetered wifi access point (eg. home cable or ADSL) later on.
I have experimented - in both Debian and Windows 7 - using plugged-in / USB connectivity, but a) it's a bit spotty, b) it means I need a cable connection and that's often not ideal when on the go, c) it doesn't (as noted) work with tablets, and d) it doesn't solve the underlying issue of slave devices thinking they have non-mobile(3g,4g,lte,etc) network connectivity and sucking down lots of data.
Able=self-reliance
<Monop/Oligop> Corporation, Inc is not remotely interested in the latter.