Back in 2003 there was a patch to the Linux kernel iptables that allowed the use of two or more interfaces for IP masquerade. It did round robin and failover, just as you want.
A new connection would be assigned an interface and it had to stay on that interface. If the connection went down, all of those TCP connections also went down. But new connections would be created on the remaining interfaces.
I think the magic happens in the command "ip route add default equalize nexthop via 192.168.10.1 dev eth1 nexthop via 192.168.9.1 dev eth2 nexthop via 192.168.8.1 dev eth3"
Thanks, I'll check out that link later. After my failed attempts with bonding (like here and other parts of the internet, people said it's really meant for Ethernet) and directed me towards iptables. I gave up pretty quick since I was tired from my failed bonding attempts. I'll be trying IP routing again now!