EPOC was designed for far less capable hardware than even pre-iPhone smartphones. It allowed for a lot of capability on those early Psion devices. But in modern hardware it was too fiddly and too alien (non-standard C++).
Microsoft always understood the consequences of Moore's law. Palm killed them early on because Windows Mobile was just too much OS for those early devices. But as hardware improved, Palm was left with a less capable OS and Microsoft was ready. What they weren't ready for was Apple porting their desktop OS to mobile.
Symbian OS was very capable, full of features, but hard for developers to pick up and work with. I remember when the iPhone first came out and Symbian developers couldn't believe how few features it had ("it doesn't even multi-task!") but it did absolutely nail the user interface which is what most people noticed.
As a friend working at Symbian once said to me, "it was like watching a train crash in slow motion"
Microsoft always understood the consequences of Moore's law. Palm killed them early on because Windows Mobile was just too much OS for those early devices. But as hardware improved, Palm was left with a less capable OS and Microsoft was ready. What they weren't ready for was Apple porting their desktop OS to mobile.