Podejrzewam, że SqlParameter "wie", którego polecenia jest częścią i że ta informacja nie jest usuwana po usunięciu polecenia, ale jest wyczyszczone po wywołaniu command.Parameters.Clear() .
Osobiście uważam, że przede wszystkim unikałbym ponownego wykorzystywania obiektów, ale to zależy od Ciebie :)