Попытка найти в стандарте что-нибудь, что подробно изложило бы это, но я не могу. Единственное, что я могу найти, это 9,9:
Имена типов подчиняются тем же правилам области действия, что и другие имена. В частности, имена типов, определенные в определении класса, не могут использоваться вне их класса без квалификации.
По сути, имя для Foo :: Bar является частным для Foo, а не для определения. Таким образом, вы можете использовать Bars вне Foo, вы просто не можете ссылаться на них по типу, так как это имя является личным.
Правила поиска имен для членов также могут оказать какое-то влияние на это. Я не вижу ничего, что бы конкретно ссылалось на «вложенный класс», и поэтому им было бы запрещено (если я не смог найти что-то на самом деле, потому что его там нет).