I think a Safe / Unsafe badge could be a nice idea.
It’s not 100% meaningful, will dependencies be taken into account? Dependencies like libc and libstd would not earn a “Only Safe Code” badge, so who decides which crates are exempted?
If you don’t take dependencies into account, that could encourage splitting out the few unsafe blocks you have to their own crates. That sounds kind of like a sensible goal I think.
I think it should be two badges, you have either one or the other: “Only Safe Code” and “Some Unsafe Code”. It shouldn’t be that either you have the badge or you don’t, it should be a categorization. This to encourage more objective evaluation.
Oh and remember that at any time there will usually be a couple of memory safety bugs in flight in unstable-marked features. Which brings us to the next badges! “Stable” and “Nightly”.