There's not a defined rule here because every import can be very different from a complexity perspective. Loading 5000 domain values for example is trivial from a Maximo perspective and I wouldn't hesitate to do that through application import. Loading 5000 WOs is significantly more complex, especially if you're loading a lot of the child tables, and I would not do that many for application import. That's why on a per object structure we let you define the cap for users to import and/or export.
Application Import is different than other methods of integrations (such as using the Data Import function in the External Systems application) because every record is processed inside a large transaction to ensure everything is successfully committed or everything is rolled back. We do this because these are typically done by non-administrative users that are likely less familiar with Maximo framework so they're more likely to make mistakes.
The Data Import function of External Systems will load the file contents into JMS/Kafka and then use the normal queue processing (including processing messages in parallel for continuous queues) to process the messages. In this scenario it's possible to have some records get committed and others fail because each message will be processed independently of the rest of the import.