Given that IPv6 is becoming more and more ubiquitous (2.6.30 kernels
in Debian have ipv6 compile in, it's no longer a module), it would
make sense to unify the output of 'ip route' in similar ways as the
output of 'ip address' already includes both address families.
A simple call to 'ip route' should include IPv6 routes, e.g.
2001:a60:f069::/64 dev wifi proto kernel metric 256 expires 2592088sec mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev wifi proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0
192.168.20.0/24 dev wifi proto kernel scope link src 192.168.20.102
default6 via fe80::204:75ff:fecf:3ff6 dev wifi proto kernel metric 1024 expires 1727sec mtu 1500 advmss 1440 hoplimit 64
default via 192.168.20.1 dev wifi
In general, there won't be overlaps, and IPv4 and IPv6
addresses/routes are sufficiently different. The only clash is with
'default', and I suggest that the IPv6 default route should be
labelled 'default6'.
If -4 or -6 are explicitly specified, the output should only contain
those address families. But if neither is specified, the two should
be merged.