Why does the svn revert require an explicit target?

Subversion places a very high priority on protecting your data, and not just your versioned data. Making the svn revert command require an explicit target - even if that target is just '.' - is one way of accomplishing this.

Modifications that you make to already-versioned files, and new files scheduled for addition to the version control system, must be treated with care. This requirement (as well as requiring you to supply the --recursive (-R) flag if you want that behavior) is intended to make you really think about what you're doing, because once your files are reverted, your local modifications are gone forever.