One of the most-basic considerations, of course, is that a browser typically sends only those values that have changed. If you populate a form field with a value and don't change that value, it might not come back in the return stream.
I really wonder where in the HTTP / CGI specification this User-Agent behaviour would be specified, since I've never seen nor even heard of this behaviour until now. I do a bit of web and browser automation and don't know of any test suites or code that looks for such cases.
Can you please point out this weird behaviour either in the specifications or in example cases of browsers and pages on which that happens?
I will ignore such advice until you show actual code/data.