This was an interesting article. I was always curious about the use of NULL in kernel vtable structures.
The idea of associating multiple vtables with a single object-- to collect related functionality-- reminds me of Google Go's structural subtyping. Why force all the class methods to be in one .h or .java file? We should be able to group the methods in whatever way makes the most sense.