Нужно и безопасно ли использовать password_hash для хэширования пароля?
Да, нужно и это безопасно. Более того, не забываем проверять пароль через password_verify
Разумно ли использовать PASSWORD_DEFAULT или лучше использовать свою соль (если соль, то разумно ли хранить свою соль для каждого пользователя в бд ? - или как это делается?)
Разумно, потому что большинство разработчиков не сильно замарачиваются с генерацией соли. По поводу хранения в БД - она хранится прямо в строке, выдаваемой после хэширования пароля, если что. Не парьтесь по этому поводу. Суть соли в увеличении времени подбора пароля. Точно так же как и использование медленных алгоритмов типа bcrypt.
Ведь php постоянно расширяется, все меняется, вскоре может изменится все и появится ещё более лучший механизм для хеширования
PHP можно считать достаточно взрослым языком, там очень строго с обратной совместимостью. Ну и да - механизмы хэширования лучше не придумают, могут придумать лучше алгоритм (например сейчас повсеместно используется bcrypt, в том числе в php по умолчанию, но уже есть scrypt который лучше, но который еще не прошел проверку временем).
Или как вариант, изменить вообще метод хеширования
Bcrypt должно хватать. Для новых пользователей можно юзать уже другой метод, а старых просить сменить пароль. Куча разных стратегий.