Interesting--but highly specialized--design, complicated by the fact that almost any object complex enough to be useful also consists of other dynamically allocated objects (Strings, Arrays, Dictionaries, etc.), which in turn implies that looping through the data in question will also generate cache misses.
Don't really share your dislike for vtable-based objects either, especially since Apple Silicon has several hardware-specific optimizations for method dispatch and Swift offers several mechanisms (like final) to ensure dispatch is static.
That said, interesting to see an article that dives below the surface and exposes performance characteristics of which most developers aren't aware.