The implementation has to assume that a buffer overflow is possible. For standard send, it blocks the operation. If the receiver is simply slow, this will only cause a delay. A non-blocking standard send must cause an error. The advantage of this approach is improved debugging and greater respect for the progress guarantee.
Users never detect a circumstance which appears to violate the progress guarantee.
Source side detection can cause mysterious behaviour of buffered send. The implication is that a buffered send is guaranteed to complete. With source side detection, an envelope queue overflow must fail a buffered send because it must not be blocked. This occurs in spite of the fact that ample space may be remaining in the attached buffer. Although not as precise at it could be, the MPI statement on resource limitations clearly takes precedence over the guarantee on progress.