Yes, we all agree that counting the users of the crates undercounts how many people would use it if it was in the language. But this is not unambiguously a point in favor of putting it in the language. For one, there’s really no way to tell how large this effect is (i.e., how widely used it would be if it was in the language). It also means there’s very little hands-on experience with such a type, which would be really useful for exploring the design space before baking anything into the language.
Furthermore, note that ordered-float (which encompasses multiple solutions to the problem @matklad mentions) has 133k downloads over ~ three years. That’s an order of magnitude more downloads per unit time than all three fixed point crates put together, and a significant amount of real world experience in absolute terms. This crate has the same problem with literals, but somehow it achieved more usage than the libraries mentioned here. So I don’t think the small usage numbers of the other crates can only be attributed to the pain of using them without literals.
Being syntax-related doesn’t make language design easier, see Wadler’s law 
Joking aside, this is far from a trivial feature. There’s quite a large design space even just for the implementation strategy (off the top of my head: procedural macros, const fns, run-time call to a non-const function, piggy-back on existing types as @kryptan suggested above). Then there’s questions such as:
- how to namespace/import?
- explicit suffixes (as in C++) and/or inference?
- if there are explicit suffixes what is the the lexical syntax for them?
- which kinds of literals can be overloaded (string literals? char literals? C++ has those)?
- assuming there is inference, how does it interact with the fallback to i32/f64?
- if string/char literals (which aren’t polymorphic so far) can be overloaded, will this cause type inference regressions?
And there is a forwards compatibility issue with future built-in literal suffixes – e.g., if 1u256 could be a custom/library-defined literal, that would restrict our ability to introduce a built-in u256 type in future Rust versions.