I think it's valid per the wording of the standard. Per
[class.access.base]/5, the designating class is `Base`, and the member we are trying to access is public when considered as a member of that designating class, therefore access is granted.
It does seem to me like this shouldn't be valid, and I'm not sure if we have the wording to make it so. Since
[namespace.udecl]/3 says that you must name a base class, it seems to me that there is some missing wording saying that it must be an accessible base class.
That's because we treat using-declarations (with the only exception being when they name constructors) as if they declared a name in a new scope that happens to refer to the same entity as that name in the original scope. So if we say that `using ::Base::member;` is valid, then we cannot stop `Derived` from being able to use `member` without further qualification, since it would then be accessing its own member, not that of a base class. This doesn't seem like the right result, so the only option is to make the using-declaration illegal.