In my opinion, "u8 foo() {}" looks and reads better than both of those.
I think that the advantage of leading with `fn` arrives when you have paragraphs of functions to scan through.
Leading with a consistent word (be it fn, func, or whatever) immediately and disambiguously identifies the line as defining a function (rather than a variable, or whatever), which is a useful landmark to anchor on or pivot from.
Clearly this doesn’t matter if you’re in an IDE with a working “find definition” feature, but that’s often enough not the case that I find easily greppable definitions to be a gigantic advantage.