Casey touched on this in response to a comment, but the platform layer is intentionally the opposite of a library
A library provides some functions which a program can call when it wants to do specific things. The more complicated the API for this, the harder it is to know what is happening in your code at any given time.
The platform layer is the other way around - it's the entry point, and it treats the game more like a library (actually, literally like a library -- we build a dll of the game code).
And while in a sense we are writing callbacks for the platform layer, it doesn't look like there will ever be more than 2 functions that the platform layer expects to see, and those are very basic to the structure of a game. Any game will have a main loop where it updates and renders, and any game with sound will be outputting to a sound device. The structure of the game is left up to the implementation for the most part.