Visual Basic is the only language I've used that will throw runtime errors like that, suggesting that it's where the problem lies. WinMPQ and PowerMPQ are written in VB. MPQ files use unsigned 32-bit integers, so there's a limit of 4 gig MPQs, right there. But Visual Basic doesn't support unsigned numbers, cutting that limit down by half. Of course, you could store it as a 64-bit signed integer in VB, but it doesn't sound like that's what they're doing.
Not in Warcraft III, I'm quite sure (someone might make some crazy mod...). But WoW comes with several MPQs in the 1-2GB range. And MPQ Viewers/Editors should be programmed with general compatibility as target.