The same CALL instruction resolves to three different dispatch styles depending on the abstraction's configuration. The caller's interface is identical in all cases — only the resolution mechanism changes. This gives abstraction authors full control over the security/performance tradeoff without any change to calling code.