What I wanted to express was that we cannot rely on the return value of createBindingContext because if the entity requested is not yet present in oModel.oData the function returns undefined and triggers the asynchronous loading of the odata entities.
So it is better to use the callback function in any case because this will always receive the context (with data already loaded). Either immediately if the data has been loaded already or asynchronously as soon as the data has been loaded from the server.