FHS v2.3 was released ten years ago. Some things have changed since then (including the introduction of /run1). About three years ago, the Linux Foundation decided to update the standard and invited all interested parties to participate.
You can view the v. 3.0 drafts here and the section that describes /run here.
Excerpt:
/media : Mount point for removable media
This directory contains subdirectories which are used as mount points for removable media such as floppy disks, cdroms and zip disks.
/mnt : Mount point for a temporarily mounted filesystem
This directory is provided so that the system administrator may temporarily mount a filesystem as needed. The content of this directory is a local issue and should not affect the manner in which any program is run.
The distinction between /media and /mnt is pretty clear in the FHS (see Purpose and Rationale), so I won't go over it again.
Same for the purpose of /run - see links.
Excerpt:
/run : Run-time variable data
This directory contains system information data describing the system since it was booted. Files under this directory must be cleared (removed or truncated as appropriate) at the beginning of the boot process.
The Gnome story is yet another thing. Gnome uses underneath an application called udisks (replaced later by udisks2) to automount drives/devices. For quite a long time, udisks default mounts were under /media. In 2012 the devs decide to move the mounts to /run/media (i.e. a private directory). So the different behaviour you're experiencing there is caused by the different versions of udisks that each DE is using.
1: See
What is this new /run filesystem ?
/run/mount/thing happens when you use some kind of auto-mounter script - it mounts the disk in a user-owned directory./mediaand/mntare root-owned usually - so there's that at least.udisks2mounts to/run/mediaand the olderudisksmounts to/media... See also What is this new /run filesystem?