Does the bash read command always print the user input on terminal or would I print it myself using echo.
For instance I do read -n 1 repl inside a while do loop, reading each character every time.
The read command does not print any input (it can print a prompt if you use that option). What you do with the input is your choice.
If you are typing the input at a terminal, the terminal driver prints what you type (but this can be reconfigured with stty).
If you are reading from a pipe or a file, having read print everything it received would be intolerable.