From my understanding, echoing is the feature of sending back what is written on the master side ptm so that the process opening such a fd (by opening the PTY multiplexer /dev/ptmx device file) receives back what it has written to.
No, the master side in a pseudo-terminal emulates the serial line/wire between the terminal and the computer in the case of a real terminal.
Echoing is the kernel sending back what you type to the terminal for it to display it. You press the a key, the terminal sends an a character over the wire, the kernel (the tty discipline part) sends an a back to the terminal which the terminal renders as an a glyph for you to see what you have typed.
An application can then read() from the tty device file and will get an a (provided Return has been pressed later and a backspace character had not been received in the interval if the line discipline is in canonical mode), regardless of whether or not echo is enabled in the tty discipline.
For a pseudo-terminal, it's the same thing, except that instead of sending an a character over the wire, the terminal emulator write()s it to the master side and instead of receiving the echo back on the wire, it reads it back from the master side.
The echo is only between terminal and kernel, the application interacting with the tty device file (slave side in the case of a pseudo-terminal) is not involved.
If you do a strace cat (or equivalent such as truss, tusc... if not on Linux) for instance, you'll only see read() and write() system calls happening when you press Return, you won't see anything done by cat for the echo of what you type.
Now beware most interactive applications including editors or shell line editors (such as the GNU readline line editor used by bash (the GNU shell) and many other GNU (and some non-GNU) tools), do their own echo. They disable the tty line discipline echo and builtin line editor (canonical mode) so that when the terminal sends a character it's immediately available for reading by the line editor software, which sends it back for echo for the terminal if it's a graphical character (and could do many different things if it's not, like a ^A in emacs-like editors moving the cursor to the start of the editing buffer which would require sending cursor movement escape sequences to the terminal).
readline and ksh93's line editors (as opposed to those of zsh, mksh, yash, fish or tcsh for instance) however have that particularity that they disable their own echo if the tty line discipline's echo is itself disabled (was upon entry of the editor).
If you do a strace bash --norc, you'll see one (or more for some function/motion keys) read() for each key you press, and corresponding write()s for the echo of what you type (unless echo is disabled as seen above). Pressing Ctrl+a (upon which the terminal sends a ^A character) after you have entered 5 characters in editing buffer will cause a write(2, "\10\10\10\10\10"...) which sends 5 BS characters to move the cursor back by as much.
The tty line discipline's own line editor does not support ^A, but it does support a erase (to delete previous character, bound to ^H or ^?), werase (to delete the previous word, generally bound to ^W) or kill (to delete the full editing buffer), and those also generate the echo necessary to erase the corresponding character(s) on the terminal screen (like BS, SPC, BS for a erase received whilst the line editor buffer ended in a single-width character).