Redirection in a command changes the output format

I needed the command wc -l [file] to display only the number of lines. On a forum somewhere on the Internet, a very helpful user answered exactly this same question. Unfortunately, he didn’t explain why it worked.

I’ll use one of my files from the /home/user/ directory as an example:

~$ wc -l f2; echo $(0< f2 wc -l); echo $(< f2 wc -l)
559 f2
559
559

I just don’t understand why redirecting the contents of the f2 file to standard input can change the way the command wc -l displays the result. Why is that?