There are cases where macros use `.used` procs that should be optimized out. `keep` affects the backend, `used` the frontend and it seems to be wise not to conflate the two.
Simplicity is not about leaving features out nor about conflating features (C's `static` keyword is a prime example here), it's about keeping features simple and independent from each other. Now you can argue that `keep` should imply `used`, but it really shouldn't: If you forget the export marker the lack of `.used` will remind you whereas most symbols in your use case already use `keep`.
