speaker option enabled by default when answering the calls
I know for certain that some apps do have the option of changing the setting (e.g. InDrive allows you to switch to speakerphone when driving)

As for the second question, I believe that CallRecorder is the culprit, because:
a) I have tried TrueCaller once, and did not experience anything like you are mentioning,
b) Call recorder apps generally can't work on unrooted Android (as far as I know) unless you are using the speakerphone, so that they can record your voice, and the voice coming from the speakerphone.