Why can't an anonymous server request a client certificate?
In order to answer this I think it is important to look at the definition on what is a client according to the spec. In the Glossary a client is defined as
The application entity that initiates a TLS connection to a server. This may or may not imply that the client initiated the underlying transport connection. The primary operational difference between the server and client is that the server is generally authenticated, while the client is only optionally authenticated.
This means that servers should always be authenticated and hence un-authenticated servers ( or anonymous servers) cannot ask for client authentication. In other words, since the client is initiating the TLS connection, the server should authenticate itself to the client before authenticating the client. I think the language could be clearer so there is no ambiguity.
In your comment you mentioned reversing the roles, so the TCP server becomes the TLS client and the TCP client becomes the TLS server. This is possible using some clever socket level programming. Take a look at STARTTLS which can be used to upgrade a plain connection to a TLS connection in a standard way. Netty is a Java library that provides such an implementation of StartTLS.