Mount points can be created anywhere. In fact, inspect your system with
mount (with no arguments) or
cat /proc/mounts. On a typical Linux system, you will see many “technical” filesystems mounted at various locations:
/sys, etc. You might also find GVFS (the Gnome virtual filesystem wrapper) mounted at
~/.gvfs (with Samba, SSHfs and other mounts below it), AVFS at
~/.avfs and so on.
The Linux convention defined in the filesystem hierarchy standard is to have two system directories:
/mnt left to the discretion of the system administrator, and
/media containing one subdirectory per mounted or potentially-mountable filesystem.
/media was conceived because there were two opposing traditions for
/mnt: either as a temporary mount point, or as a directory containing mount points.
On some systems, you'll see directories such as
/home that are mount points (if home directories are on a central server). You might see a mount point at
/boot on systems where the bootloader can't access the OS root directory. It's rare nowadays, but a separate, read-only
/usr used to be more common.
mount command requires an existing directory for a mount point. The directory should be empty; this is not required, but mounting hides any data that was in that directory.
Other commands and system components (pmount, udev, …) create the requisite directory automatically and typically remove it when done. Since they do the mounting, they might as well create the directory while they're at it.