I think it’s not only the amount of change involved, but also the total complexity it requires (at least in my own mental model).
The current system has a single syntactic form: a sequence of segments separated by ::s. The empty segment is the root, and use paths start there because they are primarily used to reference things “above” the current module. (Though you could write use ::std::io if you wanted.)
Leading-crate feels like a simplification here. The current system has two ways to get to a crate’s top-level items: go through the root, or go through some extern crate item. Leading-crate instead puts all crates in one place, so you always go to the root. Here, uses are still nice, and paths still have a single syntactic form.
Leading-extern feels like a complication, or a move sideways at best. It includes the extern:: mechanism just for dependencies- at least extern crate just reused the “item” concept. Here, there are still two ways to get to top-level items, and there’s an extra concept, though paths still have a single form.
Sigils feel like a complication. Instead of all paths being simple sequences of segments, some segments are different. This new mechanism is even weirder than extern:: or extern crate, and is undoubtedly unfamiliar. Here, there are two types of crate roots, an extra concept, and paths have multiple forms.
I feel like this also explains my feeling about 1path- I like that use's default is the root, because it’s used that way so much more often than for not. I like making the concept of “go to the root” a part of use more than I like it as part of an extra concept attached to paths.
(As always, thank you so much for bearing with me and my stubbornness! I really appreciate it.)