Да, вы должны избегать использования меток, если нет особой причины их использовать (уместно привести пример упрощения реализации алгоритма). В таком случае я бы посоветовал добавить достаточное количество комментариев или другой документации, чтобы объяснить причины этого, чтобы кто-то не пришел позже и не исказил это из-за некоторого понятия «улучшения кода» или «избавления от запаха кода» или какое-то другое, потенциально BS оправдание.
Я бы приравнял этот тип вопроса к решению, когда следует или не следует использовать троицу, если. Основное обоснование заключается в том, что это может ухудшить читабельность, и если программист не будет очень осторожно называть вещи разумным образом, использование соглашений, таких как метки, может ухудшить ситуацию. Предположим, что в примере, использующем «nextCondition» и «nextItem», использовались «loop1» и «loop2» для имен его меток.
Личные ярлыки - это одна из тех функций, которые не имеют большого смысла для меня, кроме Assembly или BASIC и других аналогично ограниченных языков. У Java есть много более обычных / регулярных циклов и управляющих конструкций.