I should mention that of course I could connect the VM through an "external network". But then I would have two different IP addresses for guest and host - which is OK in my home network, but horrible anywhere else. In a hotel, I would have to buy two access codes for guest and host! Hence, NAT is my only viable option.
What an earth are you talking about?
Of course you only have one public (external) IP also when using an external virtual switch. You have completely misunderstood this about virtual switches.
Let me try to explain. A physical
Network Interface Controller (NIC) or as it is often called Network Adapter connects your host PC, the physical computer to the network. It can be a
LAN NIC or a
WLAN NIC, most computers especially laptops today have both available.
Your Hyper-V
virtual machine (vm) has no physical hardware, it "borrows" what it needs from host. If you have not removed Network Adapter from vm settings in Hyper-V, it has one but as the machine is virtual all its hardware is virtual, too. Therefore we say your vm is using a virtual NIC.
Of course you can not connect a virtual NIC physically to router or network. That's why you need a
virtual switch; a virtual NIC connects itself to a virtual switch, which then connects further to host's physical NIC to allow networking:
If your PC has both
LAN and
WLAN, and if you have created an
external virtual switch for both NICs you can use both NICs / switches to connect to internet at the same time. I do it all the time: my physical host computer is (when possible) connected with
LAN NIC. I have created an external virtual switch which uses the
WLAN NIC of the host, and normally my virtual machines use it.
All your
public (external) network traffic goes through router (or modem). It gets a public (external) IP from your service provider and then gives
local (internal) IPs to each networked device on your network. The system sees no difference if these devices are physical or virtual, each is treated equally.
You can test this easily to see that regardless how many real physical computers or virtual machines you have online at the same time, as long as they connect through same router they all have separate local (internal) IP addresses but
all are using the one and same public (external) IP address. Screenshot below shows my computer a few minutes ago; I have a remote desktop connection to my Windows 7 Hyper-V vm which is using an external virtual switch connected to the WLAN NIC on my host, and my host computer is connected with LAN NIC:

(I only blurred a few digits for not to reveal my public IP but you can still see they are the same.)
Theoretically it could be possible to get different public IPs for both LAN NIC and WLAN NIC. It would be possible if both physical NICs on your host would connect to different routers (modems). To do this you would need to do some tweaking, it does not happen by itself. However, using your hotel example, I have traveled a lot and yet I have never seen a hotel where even if you could connect both LAN and WLAN at the same time you would have to pay for two connections. Most hotels only have either LAN or WLAN available and in hotels with both connection types available at rooms they normally belong to the same subnet. You get the access code, give it to PC and that's it. No difference if you connect with LAN or WLAN.
This theoretical possibility totally vanishes if you only use one NIC. If you at a hotel connect wireless using WLAN NIC, and your vm connects to an external switch which uses the same WLAN NIC, all your network traffic from both host and guest are going through the same NIC with just one public IP. The same if you have 10 virtual machines running and online, all of them share the public IP with your host or rather with your router.
Kari