A while back, if memory serves me correctly, sorear++ pointed out the operator-y nature of the [] and {} postcircumfixes and suggested they should perhaps be subs, not methods. This makes a lot of sense in so far as adding new ones is a language tweaks. However, I believe that making a change like this is important for optimizability.
Today, looking up an array element is two method dispatches, first to a postcircumfix and then to at_pos or at_key. The late bound nature of these makes optimization difficult. Inlining of subroutines is already done by the Rakudo optimizer. Inlining of methods at compile time, on the other hand, is much harder. Nothing is closed or finalized by default, meaning at best a static optimizer can emit a speculative inline with a fallback. A fancy JIT or, on things like the JVM, doing our own runtime tracing and producing specialized JVM bytecode, are possible. However, something as fundamental as array access being so hard to optimize is a bit of a