There could be several reasons, but this is mainly down to separation of concerns.. It is a different process that has nothing to do with the Bela process. The process can be started before or after the audio-processing process, according to your requirements. The process can even crash and your audio code will keep running. You don't have to modify your Bela project to support the display(s) at a low level, so for instance you can reuse the same code to drive the display while your program only implements the message sending at a higher level. So much so that - and this is the "killer app" - you can send OSC from any language, without using or knowing C++. So your program can be Supercollider, PureData or Csound and you only have to send out OSC (which is relatively straightforward in any of these).
However, if you have a C++ Bela project, you can reduce the communication overhead and communicate to the screen directly using the C++ API rather than using OSC.