Without those libraries working with ARM peripherals is really not practical.
If indeed one have to write all these lines of code to initialize a timer I imagine that not many people would dare to attack ARMs.
I guess I and folks I work with are one of those people,
Once you build up your own blocks / functional modules by operating on registers, you have built up your own library: once you have written tmr1_set(1000);, you can call it next time to set a period of 2000 or 50199, without knowing much about how it did it, just that you know with confidence that it will do it right.
The beauty of modular programming.