We actually can go pretty far without dependencies available (lexing, parsing, partial name resolution / expansion), especially is macros from other crates are not used.
It's interesting how much effect on times that would have.
Even import resolution / expansion can be done "selectively" by avoiding dependency crates until they are ready.
The fix-point algorithm can proceed until it's stuck, but now "stuck" would have two distinct reasons - "stuck because dependencies are not ready" and "just stuck", the first would block and wait and the second would report an error.
IIRC, @eddyb had some thoughts about querifying the whole multi-crate build rather than a single crate (which seems to be a pretty much the same thing).