2. This class and subsequent functions are defined in anonymous namespace. This means they are redefined and recompiled in each translation unit, and remain a per TU definition. Is that intent?
Yes. Because it's a C source file, you would get symbol collision errors otherwise.
Can't the same effect be achieved with declaring the functions inline? And then you would only get one symbol.
We would then collide with anyone who later includes