When is the use of internal signals required in VDHL processes?
In VHDL, before VHDL-2008, you cannot read from an output signal (after all, it is an output which you can write to, not an input which you can read from). That means that if you cannot read from it in order to manipulate it. You can only manipulate it by completely overwriting it without knowing what it was. So if you do need to read from it to change it (i.e. adding or subtracting from it), you need to do it to an internal signal before placing it on an output.