Pros of any versioning scheme:
- Allows clients to avoid updating when the API changes.
- Reduces the cost of making breaking changes.
Cons of any versioning scheme:
- Requires the code to accumulate more and more "if version < foo" cases, which must be tested, reviewed for security, and updated as things in core change.
- Can't entirely prevent breaking things. For example, the introduction of ContentHandler removed sectioning for Javascript and CSS pages, and there's no sane way to preserve that in an old API version.
Please expand these lists.