you are right this shouldn't be in the interface but be handled by the implementation.
An example where this would be needed is in the at91sam3x reference where you have to know where to write second, minutes and hours into the 32bit register. But this should definitely be done in the implementation.