Если бы в языке по умолчанию был final и требовалось бы писать open к тем классам, где наследование разрешено (Kotlin, например), то такой формулировки («где его использование будет оправдано»), наверное, бы не было. Я ищу не места, где нужен final, а где его можно убрать.
Я могу привести в пример, допустим, любой value object. Или класс с одним методом, который реализует интерфейс. Там наследование при всём желании не имеет смысла, там нечего будет наследовать, даже притянуть его за уши не получится.