ничего подобного, напрямую с регистрами разбираться намного сложнее и дольше. Оптимизировать имеет смысл только часто используемые функции например, дернуть ножкой - библиотечная реализация довольно медленная, а использоваться может очень часто. В то же время инициализация периферии выполняется редко, и сколько требует времени обычно не важно, поэтому вполне можно использовать библиотечную. Также библиотеки часто помогают понять тонкости работы периферии даже когда приходится писать свои функции.
Поэтому для сокращения времени разработки вначале удобнее брать библиотеки, а потом заменять критичные функции на свои или на макросы