xargs takes strings from stdin and a command line on its own command line. It runs the command line using the strings from stdin as arguments to the command line. It's basically doing indirection. If you have a list of filenames (such as find produces) you can performa operations on the individual files (or their contents) with xargs. Like getting a top-20 word frequency list from a number of text files:
find . -name '*.txt' | xargs cat | tr -s '[:blank:]' '\n' | sort | uniq -c | sort -k1.1nr | head -20
I'm not sure it's worthwhile to perform your task from Question 1. I'm certain that it can be done, but why bother? And that's the answer to question 2: there is no advantage either in performance or clarity of intention.
In general, the advantage of using xargs is that you can do elaborate things to decide which file names to put on its stdin. Your find could have time-of-creation added to it, or more than one name glob, or whatever. Just having a static list of filenames negates any advantage you might get from xargs: you'd be better off using cat or running the command xargs would run in a loop.