Using query parameters for API versioning is a “code smell” that leads to confusion, maintenance nightmares, and client errors. Experts advocate embedding versions in URL paths or using HTTP headers, reserving new versions strictly for breaking changes to ensure robust API design.