I think it is definitely well readable and can easily be understood in comparison to using just one if statement like
if (blah and blah and blah and blah and blah and blah and blah) {}
However I'd still prefer doing it this way - too much indention can get kinda annoying:
function change_password($email, $password, $new_password, $confirm_new_password)
{
if (!$email || !$password || !$new_password || !$confirm_new_password) return false;
if ($new_password != $confirm_new_password) return false;
if (!login($email, $password)) return false;
if (!set_password($email, $new_password)) return false;
return true;
}