Based on my experience in writing JS tooling (https://github.com/steelbrain/pundle / https://aneesiqbal.ai/2020-05-17-what-i-dont-like-about-node... ), even if rollup stayed in js and continued to use magic string, but somehow gained multi-core capabilities and cheaper memory operations, it may be able to somewhat compete with the rust tooling.
JS tooling is mostly single threaded. It is expensive to stringify a large AST and then parse it again over IPC vs just transferring an object (which is not allowed by runtime). This cost incentives more things happening in the same process, so there’s a limit to how fast you can be with JS