The set_latency function is the perfect example of a feature that should be implemented as an ioctl: it's only implemented by a single driver, and the functionality is also highly platform specific.
The I/O implementations need to be exposed in the public api, otherwise applications won't be able to use them!