I found my own answer:
It all has to do with cardinality:
xsd:key is used for (0..N) and (1..1) multiplicity.
xsd:unique is used for optional (0..1) multiplicity. This is also the reason why a the selected field in a xsd:unique can be nill.
Source of my answer:
http://www.xml.com/lpt/a/987