> println! is a macro, and doesn't "break the tooling"
I like, use, and write macros, but this isn't fully true. For example, recent Rust versions allow writing identifiers directly in the format string:
println!("{some_identifier}")
However, this breaks rust-analyzer's ability to rename variables [1].[1]: https://github.com/rust-lang/rust-analyzer/issues/11260#