writing custom libraries.

Paul
The method of working you are proposing is acceptable when you create a new library.
But when you have multiple libraries you need multiple projects (for each library 1) and multiple moves (for each release of a library).
Then when you have a project that uses the libraries and that needs a change in a library you have to remove the library link (delete#include"header") move the files to the project. When done you reenter the link and move the files.
I'm not saying it cannot be done but it is cumbersome.
Easier is to have a better development environment that allows you to change the library and the project at the same time.
There are alternatives around and my eclipse plugin is one of them.

That being said I see no reason to make a library to access registers. There is nothing you can do in a library that can not do in a project.
Making a library is just harder because you have to comply with a C/C++ rules; where the Arduino IDE takes care of that when using ino files.

My advice: Ask yourself following questions:
Do you have more than one project needing the same source code?
Apart from you; Will there be someone using the library?
Are you willing to support other people when they use your library?
Are you willing to take hard comments on your code?
Have you shared code before?
If you have 3 times yes you may be wiling to tackle libraries. Otherwise it is probably better not to write a library.

Best regards
Jantje