Simple answer is that "them's the rules". The rules aren't perfect, but if the race is red flagged only for a short time then there wouldn't be much time to fix any limping cars. And if lots of cars received minor (but normally race-ending) damage because of the incident then maybe people would be upset with only a handful of cars taking the restart.
The thing about changing tyres has been singled out though, due to the specific circumstances. What if loads of cars got punctures on travelling through the debris while attempting to form up the red flag grid?
The rules are unfortunate. And I think they are geared towards red flags ealier in races - before half way. It was unusual to have the race red flagged so near the end and not declared.
I think if the red flag is because of a monsoon, then fine. Allow them to adjust things, change to wet weather tyres. Repairs to cars, on the other hand, should only be conducted in the pit lane, IMO, and drivers whose cars need repairs should not get a freebie, as it were.
The biggest gain from the red flag was Hamilton - I doubt he would have been allowed to trundle around the track for the remaining laps with his rear wing hanging off. And, of corse, Vettel, who was about to run into severe tyre problems - problems that could have seen him lose 1st, and possibly could have sent him back to 4th or 5th.