As I understand, during TLS handshake phase, it is not legal for an endpoint to send its own handshake messages till the time it processes its peer's entire flight of messages completely. E.g. although a server is able to compute master secret after seeing client_key_exchange,
it cannot send its own change_cipher_spec and then finished messages
until it has processed client's finished message.
Why did the designers of TLS (say v1.2 and prior) disallow the possibility
of handshake messages flowing in parallel in both directions?