The system was extremely efficient on low-powered machines (by which I mean both a slow CPU and a weak battery). As far as wringing maximum performance from hardware-that-be, I have never worked with a better system.
The learning curve of the API was insane, though (and the system dragged a lot of ancient pre-32-bit PSION/EPOC remnants within itself). So was the heterogenity of the devices. Every new device required some rewrite of existing apps, and Nokia pushed out dozens of them. On-device debugging mostly didn't work. Emulators were clumsy and bloated, but still lacked important APIs, such as sound.
At the end of the day, the system was so developer-unfriendly that everyone migrated happily to better pastures.