The info for games likely won’t change drastically day to day, so why not cache it in a database and refresh your cache every 24 hours? New games get added often, but I can’t foresee breaking changes happening that aren’t announced over official channels.
As for user data, yes, it’s a pain to make a second API call to grab that data, but again, looking at the data, outside of view count, that info likely won’t be changed all too often for most streamers, so again, why not cache it and refresh your cache every 8-12 hours? The last time I ran a test of my live data, it took around 1-2 minutes to check 35,000+ users using Client Id and Oauth in a background process and didn’t hit rate limit once.
I can’t speak to the videos or follows endpoints as my current project doesn’t use them (yet).
Just food for thought… Hope it helps
(Edit:. I also agree that currently Helix feels broken because of missing data that were all used to getting, but we just have to be patient and hope that all the missing data gets added around the API on one endpoint or another)