A "GEOM provider" is a GEOM device that you can use; i.e format, put data on, etc.
Your full disk is a GEOM provider, exposed as /dev/adaX
If you partition a disk, each partition is a GEOM provider, exposed as /etc/adaXp1
When you create a mirror, it requires 2 GEOM providers, and exposes the mirror as a new GEOM provider - /dev/mirror/xyz.
Due to this design, it's possible to stack GEOM classes. For example you could create two encrypted partitions, which will show up as device.eli providers, and use them in a mirror, or the other way around (which makes far more sense in this example as you'd only be encrypting data once).
As mentioned gmirror puts metadata at the end of the provider. This causes problems if you use /dev/adaX, as that exposes the entire disk, including the blocks at the very end (and the start) where gpart would usually put its backup GPT table.
If you partition the device, then each partition's GEOM device only points to the partition, and GPT obviously makes sure that the partitions don't include the parts of the disk where it stores its config.