Currently, when MainLoop.start() is called, draw() is called to render the initial state before any updates occur. This behavior could lead to users writing buggy code based on the reasonable expectation that begin() and end() are called before and after draw(), respectively.
I think it would be fine to call begin() and end() before and after draw() when MainLoop.start() is called, but this might be considered a backwards-incompatible change. The alternative would be to document this behavior so that people know to manually call begin() and end() if needed.