AFAIK, нет реальной разницы между инициализаторами встроенных значений и инициализацией конструктора, за исключением порядка выполнения операторов и того факта, что вы очень сильно ограничены однострочными операторами во встроенном коде.
Порядок выполнения заключается в том, что инициализаторы значений выполняются перед любой логикой конструктора в неконкретном порядке, поэтому, если какой-либо из операторов инициализации имеет побочные эффекты, вас могут ожидать некоторые неприятные сюрпризы. Однако гарантируется, что этот код будет выполняться, поэтому нет возможности добавить дополнительный конструктор позднее и забыть инициализировать какое-либо поле.
Я предпочитаю использовать (цепочечные) конструкторы для встроенной инициализации, потому что нахожу код таким образом более читабельным, а также я могу делать любые дополнительные проверки, которые могут понадобиться в будущем.