To understand how different modules and dependencies interact with one another. The Simple storage app only has one user defined module, so is insufficient to check this.
To develop the lower level modules and interfaces for dealing with things like message routing, signature verification (authentication), basic validation of messages, hooks for custom validation.
To further abstract common use patterns from simple-storage and name-server and incorporate them into a library.
To benchmark a non-trivial application, both as an independent node but potentially as a network.