Не надо их разводить. Это логичное решение: не забываешь произвести инициализацию объекта. Между действиями выделения места в ОЗУ и инициализации с объектом ничего делать нельзя. Соответственно, обе эти вещи обязаны идти друг за другом. Объединение их в одно целое исключает вероятность ошибки в данном месте.

А у нас они не объединены потому, что строятся на основе записи, а запись не обязана инициализироваться конструктором.