(I took the liberty to reverse your numbering to the standard.)
You use the model that fits your purpose (there are others as well).
The TCP/IP model is well suited for software developers using the IP stack. It's a "real-word" model and fits almost always. A developer doesn't care much for the physical details, so they're all mashed up under "network access".
A network engineer requires a better insight into the lower layers, so he uses the OSI model for the physical and the data link layer. Usually, he doesn't care much about what goes on in the application layer - that's why OSI layers 5+ are off-topic on NE.
A hardware engineer requires an even more detailed view into the lower layers, so they're split into several sublayers each.
Layer models are about structuring the total workload into smaller pieces that are easier to handle and easier to grasp. When designing a new application, the upper OSI layers can be helpful for structuring the data and control flows, even though OSI is often said to be a theoretical, non-practical model.