The soft limit for objects is
100000. That's the point where object IDs and instance IDs start to overlap, context-based confusion may arise and you should really start to ask yourself "What am I doing with my life when I take the time to make 100000 objects in one project?".
This is due to how the internal identification works. Object IDs start at 0, instance IDs start at 100000. Due to the similar contexts objects and instances are often used in, it will no longer be possible to tell the two apart in all cases, as sometimes both an object ID and an instance ID will be a valid input. In such cases, undesired results may or may not occur.
Now that's all good and won't cause problems until 100000, but after that, consider this situation:
There are two objects,
obj_apple with ID 100000,
obj_tomato with ID 100001.
There is an instance of
obj_tomato in the room. As it is the first instance, it has ID 100000.
Now this instance of
obj_tomato and
obj_apple have the exact same ID.
What would happen if you run this code now?
Code:
instance_destroy(obj_apple); // Reminder: This translates to instance_destroy(100000);