Those are usually pretty trivial as they are judiciously handed out based on hot code paths by the JVM.
There are certainly pathological cases where it could cause major issues.
AOT suffers from not having runtime information, so anything involving dynamic dispatch (which is REALLY heavily used in java) will be a lot harder to optimize. JITs get to cheat because they know that the `void foo(Collection bar)` method is always or usually called with an `ArrayList`. PGO is the AOT world's answer to this problem, but it generally explodes build times and requires real world usage.
In java land, there's also the option of "AppCDS" which can cut down a large portion of that compilation time between processes.