What a surprise: the standards body of a poor standard making poor decisions about the nature of standards.
The purpose of a standard is to ease interoperability. Apple's actions are against the spirit and letter of "standard".
WRONG!
The USB standard is to ensure that when a compliant USB device is plugged into a compliant USB port, specific messages and informations are sent back and forth. These messages may or may not also contain custom, specific responses and data.
For example when asking a device for its Vendor ID, it will ONLY respond with the Vendor ID assigned to the Vendor by USB-IF (not what Palm was doing).
Basically I can plug in an unsupported Canon/Nikon camera and they will respond saying that are Canon/Nikon devices respectively as well as what model number they are etc. They will also say that they are, more than likely, Mass Storage Class devices to allow access to the memory cards.
As they are saying that the are Mass Storage Class devices, there are certain functionality that they must expose, and the supported functionality will be communicated via the USB port in a "standard way" and be interpretable by software accordingly.
The above cameras example all use clearly defined protocols and messages. Adhering to this correct messaging/protocol format is what ensures the "interoperability" being referred to by the USB spec.
Just because I can tell what the device is doesn't necessarily mean I can use it.
Custom/proprietary devices and communication over USB are permitted and perfectly acceptable. As long as a device:
- says what it does in the correct way;
- and does what is required for it to be a device of a given class or classes;
- and performs the operations for its specified classes with the correct result
it is perfectly fine as a USB device.
The "interoperability" allows a third-party to figure out and create a software driver for a USB device that would otherwise be unsupported. A perfect example of this is the PlayStation Eye camera.
Only the PS3 has a driver for the PlayStation Eye, however when I plug it into my Mac, it knows I have plugged in a webcam-device made by Sony. As a result third-party developers have been able to create a driver for the camera, as it communicates using a defined messaging standard.