Hello Simon,
in our case the routing mechanism can be ambiguous.
We have several devices in the internal network that have static ips. However the netmask/ip addresses of the external net are not known, it is likely they overlap.
There are other ways to solve this, but I think binding pcbs to netifs is the clean one and can be beneficial in other setups with more than one interface.
Also, as a user, you can route one time in the initialization of a pcb, bind it accordingly and thus save many calls to ip_route().