a). I'm just speculating, but I think there is some sort of sanity check, so if you add the discover license, it would have encoded in the key that an additional Assure or Perform key belongs to it. In any case, if you purchased only a subset of the modules, chances are the keys you receive will work, however they're encoded.
b). Good question. I don't know. But if product management reads this thread, who knows, maybe it will be documented as some point 🙂