I’m not entirely sure what you mean by “layer 3” bonding?? Layer 3, by it’s very nature, performs load balancing and fail over via standard routing protocols, such as BGP or OSPF.
In order to do this properly, you would need co-operation from your ISP(s) to route down a subnet to your zeroshell device.
It is possible to bond 2 x layer 2 TAP interfaces over 2 x layer 3 VPN’s. By VPNing to a remote host, and using that remote host as your exit point, you can effectively aggregate the bandwidth of the multiple connections.
However I tried doing this using various permutations, over multiple 3G connections and whilst it did work, if one of the connections in the bond fails, it doesn’t fail particularly gracefully.
Not sure if that answers your question, or helps at all?