Yes. printf is not a "flex", it's the only safe way to display arbitrary strings. The link mentions one good reason to avoid echo (string might be "-n"), but another important reason is that the behaviour of echo is implementation-defined if the string contains backslashes (e.g. `echo 'foo\nbar'` displays one line in bash but two lines in dash and zsh).
The %q format alone justifies learning about printf. Vanilla echo is for chumps.
Note that this is supported by bash/zsh/ksh but not by POSIX sh.