What's the difference between using a URI parameter and LoadState/SerializeState to store provider state?

In the translation provider API, one can store information about a translation provider either in a URI parameter or in the provider state. Are there any consequences to choosing one over the other? For instance, do two providers which differ in state but not in URI count as the same provider as far as Trados is concerned?

Thanks in advance.