There are various ways that a Cite template could end up with the same parameter name coded more than once. I don't know of a legitimate reason for doing this, so as far as I know any such duplication would be unintentional and would produce undesirable results.
I have tested multiple first= and last= parameters, and the software ignores all but the last occurrence and does not throw an error. I may be wrong, but I assume that the same would be true for all Cite parameters.
I have been cleaning up refs, starting each ref by copy-and-pasting an empty Cite template from Notepad. This contained "|first= |last=", which I filled in with the author's name. If there were multiple authors, I first copy-and-pasted the "|first= |last=" string to duplicate it as many times as needed. Then, due to ADD, I sometimes neglected to change the added parameter names to first2, last2, etc.
I don't know of a legitimate reason for duplicate parameter names, so as far as I know any such duplication would be unintentional and would yield undesirable results. So it would seem that principles of good software design would suggest throwing an error. Yes, I was negligent in forgetting to change the parameter names, but people will make mistakes and the software could tell them that they did rather than allowing the error to remain.