On the noopt builder, package math will have been compiled with -l, so Float32bits will have been marked as not inlinable. So I think that failure makes sense.
I'm a little less sure why the local function would fix it. Maybe because test/run.go doesn't pass GO_GCFLAGS through to the compiler when invoked for errorcheck tests? I seem to remember some inconsistency like that. And if package A imports package B, and B was compiled with -l, then even if package A is compiled without -l then functions imported from B won't be inlinable.