One of the things a well configured GSM, UMTS or LTE network does is to give the mobile device clear and precise instructions of when it should select another cell or even performs a handover to a better suited cell during an active communication session. There are plenty of standardized parameters and algorithms based on the signal strength of the current cell, the neighboring cells, offsets before a lower speed technology network is selected, interference, etc. etc. When a mobile ends up on the Wi-Fi layer, this kind of sophistication abruptly ends as I recently experienced.
On the Wi-Fi layer it's completely up to the device to decide when it is time to reselect from one Wi-Fi access point to something else. The device I played around with clung to the Wi-Fi access point right down to the last dbm where communication was hardly possible anymore, despite an excellent other Wi-Fi network with a different known SSID in range. I manually had to reselect to the other Wi-Fi to continue working. Also, reselection from Wi-Fi to the cellular layer is probably also only done once connectivity with the Wi-Fi network is lost, which often happens much later than moving out of the "usable range" of the network where data rates are still acceptable.
Sure, Wi-Fi was never designed to include that kind of functionality and 99% of home users would likely be unable to make the required settings. Also, the break incurred in terms of IP connectivity and a different pricing between cheap home Wi-Fi and a more expensive cellular layer makes the decision to move from Wi-Fi to cellular as late as possible understandable. Nevertheless from a usability point of view it's far from ideal. In other words, the user has to make sure the Wi-Fi signal is strong enough everywhere in the house or appartment so devices never leave the usable range.