It's not a feature of Bash, or any shell, but a customconvention in many applications to explicitly tell them to read from stdin. Of course many programs read stdin if no other file is mentioned, but even in that case, you need to be able to explicitly listspecify stdin if you want it to be processed along with other files. E.g., cat foo - to have cat read both the file foo, and stdin.
In the case of apt-key, the man page implies that giving a filename for the add subcommand is mandatory, and that - must be specified to use stdin. Remember that it's up to the application to do what it wants, and read whatever input it desires,desires; there's nothing that requires any program to read stdin. Using it as the default source for input is just a custom.
Some programs don't support - as meaning stdin, but take it as a literal filename. In those cases, workarounds like /dev/stdin are necessary.
As for >&-, I can't see they would be explicitly connected. It's probably just a somewhat coincidental use of a simple character. In >&- the dash probably comes from a connection with a strike meaning "nothing", an empty field. Why it's used to mean stdin, I don't know. But it looks nicer than % or such, and a number of other characters have other meanings.