I think his test case is valid. When you test, you don't assume that the users will always use the system in the way it is supposed to be, you don't assume that the other applications that interface you will always behave as it should be. We not only test normal cases, but also test exceptional cases.
If your system talks to a browser, the browser can be buggy, so you probably want to test what if the browser send me some buggy data.
On the other hand, it is an imperfect design for WWW::Mechanize to die without any error msg, unless it cored. (As the OP pointed out, the bug might be in HTML::Form)