That's intentional—I designed the starting point of text to never change during the game. If it changes, it causes significant eye-strain over long periods of time, since the user's eyes will be jumping unnecessarily.
That's why there's a purple circle when a character doesn't have a side image. If you still want to change the behavior, you will need to program it yourself. You can use the UseSideImage() function under the dialogue screen to conditionally change the xpos.
Defining side images for characters is done through RenPy, here is a link to the relevant documentation.