Obviously for native apps you have to develop different frontends for different OSes but you don't have to develop the whole app exclusively for one OS.
Case in point (the cross-platform app I've spent 20+ years developing): 500k lines of code. 190k lines of GUI code. So nearly 40% of the codebase is dependent on the GUI toolkit we use. Not only that, but the GUI part of the application is by far the most complex to develop, even though the rest of it is realtime, multithreaded deeply complex programming. The idea that we'd maintain more than one GUI "frontend" is completely absurd.