It depends how you define top. In this case it’s defined as before the first line that’s not either blank or a comment. Scripts typically include several lines of comment at the top, and it wouldn’t be very user friendly to put use statements before them. I think you’ll find it works OK in real-world situations.
That’s a bug.
I take that back — all tags/directives are meant to work anywhere. GIGO.