Mám podezření, že SqlParameter „ví“, kterého příkazu je součástí, a že tato informace není při likvidaci příkazu vymazána, ale je vymazáno, když zavoláte command.Parameters.Clear() .
Osobně si myslím, že bych se v první řadě vyhnul opětovnému použití objektů, ale je to na vás :)