People will push this crap into production codebases and link to these articles when you say you don’t want complexity. Best way to manage is to not make it possible, like go.
You indirectly deal with this kind of thing when compiling web server code too. It compiles super slow and can have weird errors. This is because the people who build the web stack in rust used a million traits/generics/macros etc.
Even if you look at something like an io_uring library in rust, it uses a bunch of macros instead of just repeating 3 lines of code.
3 lines of code that may need to change is much more complex than a macro that signals intent.
https://docs.rs/io-uring/latest/io_uring/opcode/index.html
You can click the source code link and read the code here. Macros aren’t needed at all if every single operation isn’t a different type.