Yeah, pretty much nobody expects FRU to work the way it does. Unfortunately we looked at changing it and it's a breaking change because of some corner cases.
But there are conversations going on about other options. See this IRLO thread, for example: Pre-pre-RFC: syntactic sugar for `Default::default()` - language design - Rust Internals
Incidentally, that thread also has a macro that might interest you, as it's very similar to the one you wrote but also magically allows not specifying the type: