In all the languages ββyou specify, objects contain a finite (and usually short) set of properties. Each property may contain a recursive structure (i.e. List), but it is still represented by a single property in the object.
I don't see the need to call constructors recursively. This is similar to a strange use recursion to initialize several well-known properties.
As you said, you can invoke constructors in a non-recursive way to share code in some of the languages ββyou mentioned.
C #: Using Constructors
public Employee(int weeklySalary, int numberOfWeeks) : this(weeklySalary * numberOfWeeks) { }
source share