Sounds to me like the real problem is with how ar is
Can you show the ar commands that fail?
Oh I see now. ar doesn't store pathname.
If you can require a new enough binutils (2.19 or newer), you could
use "thin archives", which don't have this limitation, and have
some more advantages. See the -T option to ar (ar rcsT bla.a ...)
Another option is to have an archive file per directory.