I feel rather uneasy about simply removing the 'infinity' checks. Is there a way to differentiate those two cases, i.e. when the generate_series is called in target list and in the FROM part? If yes, we could do the check only in the FROM part, which is the case that does not work (and consumes arbitrary amounts of memory).
It would be simple enough to remove the infinity test on the "stop" and leave it on the "start". Or yank both. Just waiting for others to agree which checks should remain.