The one thing it can't address (unending distractions) is a red herring. Either you've hired an employee that can manage their own time or you haven't. If they can't manage their time while WFH I doubt they would be much better managing their time WFO, either.
I've found it's only bad management (and in some cases, access to exotic/expensive hardware) for WFH to not work for software development.