Thanks for this good question.
I found the good choices only because I have "spied" a debate during the last Paris SQL Server Staturdays 2014 about this kind of topic.
When I dared to ask why it is possible to create a temp table with a foreign key without an error , nobody knew the answer. The table has been created because it was existing and useable without no problem. No explanation.. Bad luck for me ( I am appreciating clear explanations because it is easier to remember the problem ) but I did not forget this problem.