Glad you have put a name to this. I think it is misnamed. The cases that survive a guard clause rewrite are the ones where each early return maps to a distinct reason the function can't continue. Flattening a function whose guards all depend on the same parsed input just moves the conditionals around. The honest version of the advice is to guard what you can name, and leave the rest nested until you can.