You are talking about "bytecode",
and there exists ByteLoader/B::Bytecode, but it is HIGHLY EXPERIMENTAL. USE AT YOUR OWN RISK (note the caveats).
Once it becomes stable perl might start caching bytecode,
but chances are it will never happen with perl5 as we know it
(but it probably will with perl5 under parrot, aka ponie).
Why? I don't know, but my guess is as good as any. Take your pick
didn't think of it early enough
not enough funding
not enough interest
general perl5 maintenance cruft
MJDsays "you can't just make shit up and expect the computer to know what you mean, retardo!"