Ich vermute, dass SqlParameter "weiß", zu welchem Befehl es gehört, und dass diese Informationen nicht gelöscht werden, wenn der Befehl verworfen wird, aber gelöscht, wenn Sie command.Parameters.Clear() aufrufen .
Ich persönlich denke, ich würde es vermeiden, die Objekte von vornherein wiederzuverwenden, aber es liegt an Ihnen :)