strtotime em datas incorretas

Achei algo estranho sobre strtotime ().

Nas datas que não existem, ele retorna no dia seguinte.

$d30= strtotime("2017-06-30");
Echo $d30 ."\n";
Echo date("Y-m-d", $d30)."\n\n";  // 2017-06-30

$d31= strtotime("2017-06-31");
Echo $d31 ."\n";
Echo date("Y-m-d", $d31)."\n\n";  // 2017-07-01

$d32= strtotime("2017-06-32");
Echo $d32 ."\n";
Echo date("Y-m-d", $d32);         // 1970-01-01

https://3v4l.org/AjMAE

Eu entendo o último. Ele não retorna nada, pois é um erro.
Mas por que o segundo retorna primeiro de julho?
É para ser funcional, caso você cometa um erro, isso irá "corrigi-lo"? Ou é um bug verdadeiro no strtotime ()?

questionAnswers(2)

yourAnswerToTheQuestion