From memory, the guideContainer.af.internalsubmit servlet just gets the submitted data from the form before submitting to the actual submission servlet guideContainer.af.submit. I can't remember the actual reason why it is done in two parts, it was a while ago when I asked.
The actual server-side validation is done during the second call I believe. That is when all of the Adobe Sign, Forms portal, Async submit and redirection action happens.
There are two submissions - internal submit (massages the entered data(JSON) with uploaded files path) & final submit(takes into account actions fields i.e. in addfields.jsp). This actually gives flexibility during submission (processing)
Some of this was explained on an old Adobe blog that seems to have disappeared now. But this was old ES4 SP1 workings, so its likely to have changed since then.
I'm pretty sure I have to add a disclaimer somewhere that I don't actually recommend decompiling Adobe code and that the above information is for educational purposes only...