No technical reason. I’m just darn user friendly, and I know underscores or dashes (looks at Dan Poynor) are not something users like to see on filenames. Client devices are fine with spaced filenames. I also think not slapping filenames with underscores looks professional since no cloud storage system does it at least when downloaded.
I was hoping there’s a hook I could call and use str_replace