Why commas over repeated key?

At least one reason could be that on a lot of platforms only one value would be available: given that HTTP (URI)-specific RFCs don’t put any specifics on query parameters any parsing behaviour is “valid”. So if you use the former - you would need to implement your own URI parser.