it was a requirement (before) that you could only create instances of an object if the object already existed.
Note this is not true in the C3 runtime - you can still create instances even if there are no instances in the project. But in this case, having an unused layout with an instance placed on it lets you control the initial properties used when you create an instance.