Awhile back (#29961) it was discovered that extern crate could sometimes be order dependent when mixed with --extern. That fix, however, did not get transferred to where crates are loaded for #[macro_use], so the bug still exists there.
Unfortunately this blocks #33625 as it's triggering this bug.