I've got an iPhone 6s on ATT - and it uses both Voice over LTE and WiFi calling is an option one can enable - seems to work well enough - it doesn't grab just any hotspot/wifi network, just the known ones - and the ATT iphone carrier bundle does include attwifi as a "known" SSID, so if one is nearby, it will attach which is a bit spooky in and of itself (but out of scope of conversation on this thread).
I'll have to do a couple of pcaps to double check - but it looks like the VoWiFI client does do a quick loopback check with the IMS edgeservers prior to registration, so if the bandwidth/network quality doesn't meet some minimum spec, it won't switch over to WiFi for voice calling, and will stay with VoLTE instead.