Author here. The weaknesses are known (see for example http://www.netdevconf.org/1.1/proceedings/slides/kubecek-ipv...). IPv6 doesn't have the same features as IPv4 (notably, IPv6 can do a route lookup using both source and destination addresses). Therefore, it's not just a matter of reusing what is done with IPv4.
Not a Linux networking expert... But one thing could be that you can fit entire IPV4 address space in ram easily and this obviously can't be done for IPV6.
Might make some design compromises slower and more complex, such as storing routes in Bloom filters rather than simple cache.
Routers don't store IP addresses as strings... They use 32 bit and 2X64 bit unsigned ints usually.
And you can't compress something when measuring cardinality. Each route takes up an entry and the minimum space you can use with a non probabilistic structure is 1 bit per entry in a bit map.
There's compressed bitmaps but the random nature of routes will not compress well.