В зависимости от того, как последовательности реализованы в базе данных, всегда попадание в одну и ту же последовательность может быть лучше или хуже. Когда только несколько или только один поток запрашивает новые значения, проблем с блокировкой не будет. Но плохая реализация может вызвать перегрузку.
Другая проблема - откат транзакций: последовательности не откатываются (потому что кто-то еще мог запросить более высокое значение), поэтому у вас могут быть большие пропуски, которые будут поглощать ваше числовое пространство гораздо быстрее, чем вы ожидаете. OTOH, потребуется некоторое время, чтобы съесть 2 или 4 миллиарда ID (если вы "только" используете 32-битные (подписанные) целые числа), поэтому на практике это редко возникает проблема.
Наконец, вы не можете легко сбросить последовательность, если это необходимо. Но если вам нужно иметь последовательность перезапуска (скажем, число записей с полуночи), вы можете указать Hibernate создать / использовать вторую последовательность.
Основным преимуществом является то, что вы можете однозначно идентифицировать объекты в любом месте БД только по идентификатору. Это означает, что вы можете существенно сократить информацию журнала, которую вы записываете в производственной системе, и все же найти что-то, если у вас есть только идентификатор.