Those guests that whish they could have stayed longer and leave before seeing the animal they came to see are at least partially due to too long lines at the shops. So they do visit one shop after the other, but most likely without buying anything, so they are still hungry or thirsty. Maybe there is a time limit for how long they wait in line before they give up and try the next shop. And it seems guests have a limited amount of time they can spend in the zoo, probably a mechanism to keep a more or less steady flow of guests leaving and new guests coming. In my small zoo they stay around 30 min, in larger zoos around 60 minutes. Once they wasted all their time queuing up somewhere, they have to go home, even if they wished they could have stayed.
I didn’t have too many of those guests, but I never had any refunds before and now after the update it was around 15000 in a smallish zoo, starting to eat away my profit margin. I only had one larger food court, since I only had four habitats at that point. Although still being small, the zoo had a lot of guests and they all used the first food court, resulting in long lines.
After I expanded the zoo further, the guests wanted more drinks and food so I build a second food court further down in the zoo. After the initial rush, now guests use both courts evenly and I haven’t seen a single guest wishing they could have stayed longer. I still get $2-300 refunds a year due to unhappy guests, but that’s OK.