Помогает ли в чём-нибудь? Я думал, что в случае вызова Optional::get() c отсутствующей ссылкой (null) выбрасывается проверямое исключение, что заставляет оборачивать каждый вызов get() в try/catch, что в свою очередь гарантирует, что любое обращение к объекту будет проверять случай отсутствия ссылки. Но там RuntimeException, поэтому ничего не мешает вызывающему get() забыть сделать проверку и вместо NullPointerException получить NoSuchElementException.
Единственное преимущество, которое я нашёл, это более короткий синтаксис в случае, когда надо нулевую ссылку заменить значением по-умолчанию. В этом случае пишется что-то вроде Optional.ofNullable(maybeNullable).orElse(nonNullable).