In the HTTP/1.1 standard, is it explicitly allowed or forbidden for a server to send a response before all the request's data have been received?
Yes, it's allowed, though it depends on the situation.
For example, the server is allowed to send 1xx responses back prior to receiving the entirety of the request. We can conclude also that the server is not merely allowed to send 1xx responses, but is in fact encouraged to do so. The existence of an entire class of HTTP responses is not an accident – they were added to the spec explicitly for use in sending responses back to the client prior to request completion.
The 1xx (Informational) class of status code indicates an interim response for communicating connection status or request progress prior to completing the requested action and sending a final response.
For 2xx responses, the server should send these only if the entire request was received. This implies that the server does not (and should not) respond with a 2xx if the request has not yet been received.
The 2xx (Successful) class of status code indicates that the client's request was successfully received, understood, and accepted.
There are other details about 3xx, 4xx, and 5xx, but with the above examples for 1xx and 2xx we can see that there are cases where the server can send a response before the request is complete, as well as cases where the server should not send a response before the request is received.
UPDATE:
Section 10.1.1 "100 Continue"
from the HTTP/1.1 RFC
contains this, which quite clearly describes the server responding mid-request:
The client SHOULD continue with its request. This interim response is used to inform the client that the initial part of the request has been received and has not yet been rejected by the server. The client SHOULD continue by sending the remainder of the request or, if the request has already been completed, ignore this response.