Sospetto che SqlParameter "sa" di quale comando fa parte e che tali informazioni non vengono cancellate quando il comando viene eliminato, ma è cancellato quando chiami command.Parameters.Clear() .
Personalmente penso che eviterei di riutilizzare gli oggetti in primo luogo, ma tocca a te :)