Ah, the glory of normalmaping for lighting calculations!
I have previously not used normapping for any other surfaces than completely flat ones (sea-surface, buttons). The problem has been to calculate the tangent frame for each vertices. Now, I found a very nice description here
on how to do it. It requires som understanding of linear algebra, but otherwise it's a quite good (and accurate) description of how to get a transformation matrix to get the lighting in coordinates that follow the texture surface of a vertice/triangle.
This really makes a difference for how surfaces look and feel. Only at very very close range is the illusion of a rough and detailed surface broke.
This would have been easier if I had not been so stubborn as to write all the code and shaders from scratch without using a framework or higher-level program. But now I know a lot more of how it works than if I just had to specify "phong" or "normalmap".
Now it's just a matter of adding normalmaps to all surface textures...