O; is reserved and can be used by servers for a type of data separation, as in its example clearly happens, while & is usually used for separating GET parameters. O ; can however have another use / meaning with another server, for example may have systems that use; within the part behind the & to separate multiple parts of the response.
In practice it has relatively few standard server software, and within each of these it can have a relatively uniform handling of these symbols. However, each server does have every right to use these symbols as it best suits the application it is running, so it is by no means guaranteed that & and ; are always equivalent.
In your case it uses C # and the standard APIs seem to treat everything the same way. But because in C # you can create your own style of handling everything, nor here it is 100% guaranteed. It's just so because it's preset like this.
More relevant information: link