I asked several times if we somehow measured customer retention, as we kept adding stuff I thought would have a negative effect in the long term (a customer would go through the whole booking process, only to never return because the experience was too bad.) We didn't. I guess it's difficult, I have no idea how this kind of metric would be computed.
The checkbox is a nice idea, it could help retain customers on the verge of leaving. It wouldn't work for customers who visit once and get so annoyed they never come back.
Also: a good portion of the traffic was affiliate traffic, like from Google Maps. I guess people booking from a Google Map listing care less since they land on the hotel page ? They won't be looking for hotels through the site UI, so they get fewer annoying pop-ups and messages.