I was so tired of this annoying behavior that I sat down and looked for the problem. It bothered me a lot because it used to work correctly in a previous installation. I'm running Debian and udev is not enabled; this last thing is the most likely difference between the two installations.
Looking at pbbuttons' manual page, I found that it uses the /dev/input/event* devices to detect peripheral activity. I looked at those files and there were four of them (generated by MAKEDEV); strange, I thought; everything looks correct. So I did the obvious thing after reading pbbuttonsd.conf(5): added autorescan=yes in /etc/pbbuttonsd.conf. No luck; it kept working incorrectly.
The next thing was to check whether the daemon was using the devices or not. I did: lsof | grep pbbuttons as root and, as expected, it had all the appropriate devices open. Hmm... it reads from the devices but doesn't detect mouse activity? Maybe there is something wrong in the kernel? (No, fortunately ;-)
My next test was a cat /dev/input/event? >/tmp/a for each device, move the external mouse while the command was running and see if /tmp/a had a size different than 0 afterwards. As you can expect, for the event[0-3] devices (the standard ones), I saw no output. Aha! That had to be the cause.
I created a new device:
# cd /dev/input
# mknod event4 c 13 68
# chmod 660 event4
ensured that it received mouse events using the trick above and restarted pbbuttons. Voila; it detected the mouse again. Maybe I should enable udev and this could have worked automatically...