It is; only modules with a GPL-compatible MODULE_LICENSE get to use
symbols exported via EXPORT_SYMBOL_GPL.
Although there might be such correlation but it's not a rule. You can
have a GPL module exporting symbols without GPL requirement
(EXPORT_SYMBOLS). You can have a GPL+MIT module exporting symbols as
GPL. Obviously you cannot have a non-GPL module, as we do not accept
these and there is no such choice.
See kernel/module.c for the symbol lookup logic and
include/linux/license.h for the logic to check the string (seems like
"Dual MIT/GPL" is explicitly whitelisted there).
Not related to export symbol. It is used for determining the tainted
kernel via other licenses.
Of course, this is a futile effort, as ~every time I see a proprietary
module in some embedded device, it either falsely declares itself to be
GPL, or they have a shim module that re-exports GPL symbols as non-GPL.
This is being removed soon (or already).