GCC 4.6.1, specifically.
I am aware that CPP files serve to separate interface from implementation; that’s not of interest right now.
Looking at this, I don’t see any reason not to use only headers and all functions inline.
Performance is a concern, but I don’t see that such an approach could make things slower. What I don’t want, is to have critical sections which would usually be inlined, become slower because everything is inline. If that makes sense.
Here are some reasons not to: