On a new line:
Messages that are important to the user, that would be helpful in explaining what is happening and why it is happening. For example, $ juju deploy charmed-kubernetes
displays each action that is happening and its status, as it is likely to take a while and the user should be informed of where the process is.
Not on a new line (overwriting the last line):
Messages that would disappear quickly and the user is likely to not mind not having a record of each action that has happened. For example, $ snap remove vlc
overwrites each progress message as it is executed and upon success displays just the success message.