Не может.
Причина, я думаю, связана с конструктором копирования. Они имеют очень похожую семантику, и вы не можете определить конструктор копирования вне класса, как и другой конструктор. Таким образом, они не хотели отделять близнецов далеко друг от друга (чтобы избежать парадокса близнецов :).
P.S. Что обидно в C ++, так это то, что вы не можете добавить члена в существующий класс. Там нет низкоуровневой причины для этого. Если бы это было возможно, вы можете отделить зависимости заголовка и cpp, не объявляя закрытые функции в заголовке определения класса.