В этом хоть и есть какая-то логика, но растовские дерайвы выглядят лучше, и вообще, смотря какой код считать за наружний. В макрос все равно не приходит ничего кроме типа и его полей, а значит реально отредактировать другой код даже при желании нельзя было бы. А нам это и не надо, нам бы возможность "добавлять" код "снаружи" типа
У меня добавляется снаружи, но я фактически не обрамляю тип макросом, а через макрос определяю тип, соответственно у меня всё в одном уровне вложенности получается.