Rstopher, I know, right? Assembly (and more specifically, the device-specific trappings) are so complicated that spitting out near verbatim datasheet answers becomes natural, efficient, correct. I'm not criticizing. It's like at that level, you aren't even speaking in a language that normal human beings can recognize. Your saying exactly what you're thinking, the way you understand it.
Weeks? Yep. Took me months to blink a LED on a PIC. That's an obvious drawback. The only good thing about it is I know (or I knew) a process to do things on the lowest level if/when it mattered. For latency or power consumption or w/e. The problem is this knowledge is very device specific, and the devices change. Even the dev tools change. Heck, even the datasheets change. (Microchip stopped putting an index in their datasheets; and this was a big part of how I managed information). So it becomes almost the same challenge all over again to repeat the feat.
So to this day, some of the technically awesomest projects I have done? Super low power consumption, super low latency multitasking to get everything working on a single chip, automatic battery cutout, deep sleep, working like a peach? It's too much trouble to incorporate these features fully, all the time. It has to be very important and/or a very huge project (in production numbers) to bother. So for many projects I agree that Arduino can be awesome. I don't take a side on this. Nothing wrong with Arduino. But I'm sure it comes with its own problems, as many have noted.