When a user process makes a system call to the pm, it must be a sendrec.
So the user has sent the request in its message and is blocked waiting for the reply.
The pm receives this message executes the corresponding do_XXX function, and sends the reply.
The mini_send doesn't block the pm since the user is already waiting for the reply.
The pm does block on calling receive (traps to sys_call, which calls mini_receive) if no request has been sent.