As far as I can understand the bcm sockets are useful to handle cyclic reception on the Kernel level and thus avoid any additional overhead from doing that from code.
Is cyclic reception not possible with the current can4python library,
I've only found this possibility for sending with bcm sockets.