I wrote a driver for FreeBSD recently and had to implement memory barriers to get it accepted into mainline. I had never dealt with memory barriers before and I couldn't help but think "great! what is this new thing I have to keep in mind?" It wasn't all that difficult, but still...
We have built up so many layers of complexity that it's becoming very difficult to secure things, for example. I really hope we can somehow drastically simplify computers/software in the future.