How does FlowVisor slice ARP?
The way the flowvisor handles arps is that it takes an arp request "who has $ip? tell $mac" and sends that to the slice that has flowspace for nw_dst=$ip.
Why does my controller get errors when it tries to flood an ARP?
If your controller sends a flowmod without Layer 3 information, FV gives you an error, because if it installed that flowmod, the switch would match all ARPs. If your controller's flowmod includes L3 information, FV will pass along the flowmod as you expect. The NOX pyswitch controller, in particular, is known not to do this, and thus won't work with FlowVisor's ARP slicing.