In your example the object is not really creating similar objects. Your call is in a static context and thus there is no actual object involved in the execution of your main method. Unless of course we talk about the static "class object" or whatever that might be called. But it is not the same as instances of that object. Refer to basics of OO programming for why objects make sense for that.
As for the rest, sometimes it just makes sense. A Person object might have fields for children, parents, workers, managers, whatever. You could represent them as more Person objects. Then have more children of various types under it. Kinda like OO recursion. Would you create them in the object itself? If you like, why not.
Or think of a tree with nodes where a leaf is a Node object and has other Node objects as sub leaves. Or a map-reduce type algorithm that spawns new tasks of same type as a result of computations. Etc.etc.