It is interesting. Worth doing? Well, I think I'm on the "no" side.
I think we're getting off into corner cases on corner cases. You say that sometimes we have a *.dll file that is blank or a text file. I believe it happens, but it must be exceedingly rare. If we're looking at someone expecting an extension to be found in that file, I think they would quickly realize that the file is not a real DLL. I hope.
I think the corrupt file is a bigger concern, but I wonder how often this happens as well.

Honestly, the more we talk and think about it, the more I long for the breaking "don't scan the working directory" change that we've talked about in the past. It does obviate an awful lot of problems, including this one and the possible slow startup out of the box.

Rather than looking at implementing a somewhat complicated managed/unmanged or 32/64 bit detector in order to provide better error messages for code paths that I expect the vast majority of users don't know or care about, perhaps we should consider whether we ultimately want to make the breaking change and then schedule it in. With the bootstrapper we at least have a way forward for those few who may want to load extensions from outside the app domain, and then I'd feel much better about complaining about _any_ assembly that failed to load, because the client took the time to ask for it to be loaded.