It all depends on the data model. If you're doing a small design for a technical problem, I tend to agree that it can be done at once.
If you're doing a design of a large system and need a lot of interaction with the users, and/or the target system is not yet defined (you might even end up with a nosql system), it makes sense to do an analysis of your data (structures) first and then convert the results to fit the target system.
Some advantages of this approach are
- The choice of the target system can be made after you know what you want to store
- It'll be comparatively easy to support more than one database systems
- You can make a very clean description of the data structures which will be better understood by your users (this will improve the quality of your design)
- You can make design decisions later, which makes it easier to test different approaches (since you still know what's the real structure of the data)
- The semantic data model is great to have if you want to combine several of them
If I think a little longer, I'll find some more advantages, but I think the ones mentioned above are already quite powerful.