I think you're misinterpreting GP's code. It is a vtable, hence the static const. There would be a pointer in each struct "instance" to this static vtable, thus the same double indirection would occcur as in C++.
Plus this was a discussion about conceptual models and "what counts as OO", not the specific details and optimisation possibilities of the implementation.