Well, I experience this very differently. Reviews aside, I spent most of my time with bug fixing. And most of the bugs I encounter are either due to unnecessary software complexity or because somebody ignored the little documentation that exists. Those aren't boot-coding problems.
re whether firmware is hard: I used to think it was not so bad. But I've changed my mind.
What I learned, when I came back to coreboot in 2012 after a few years off, is that it can be pretty hard, esp. around stuff like memory training. I was shocked by how much I'd forgotten and how hard I found it to get started up again. Another change is that every bus seems to need training. Another observation: I've been told that it can take a few years, on newer complex chipsets, to get the DRAM code working -- one reason it's nice we can update the romstage in chromebooks. Final datapoint: a supercomputer vendor shipped a big machine, ca. 2007, and it was over a year before they chased down some memory issues -- and they *started* with a working port (I tried to help them with that and failed). I think firmware is hard.
Nico, I accuse you of being extremely good at this kind of work; it only looks easy to you :-)
ron