Can you imagine from a training standpoint:
If you want parcels, open this webpage. Oh you want to see Zoning, thats a different app. Oh you want Utilities, app number 3. Measure, Redline, Geocode? apps 4 5 and 6.
User = gone.
I hear ya. What I'm trying to say is that there's a sweet spot: can (should?) a parcel viewer also show zoning info? Yes, of course. Zoning is a logical addition and usually not more than an additional attribute. Now, does your parcel/zoning viewer app need 20+ additional map services, a TOC to manage them all along with multiple toolbars with map navigation tools that 99% of your users will ignore and probably not understand? I hope the answer is a resounding no.
Other features like measuring and geocoding have a place (especially geocoding, most people expect to be able to enter an address and have the map go there) and can usually be included in a simple, easy-to-understand way. I think you run into trouble (and usability issues) when you start adding toolbars and duplicating functionality in your app.
Redlining is a different animal as I think it means different things to different people. On the whole, if you're asking people to annotate and/or edit maps/data, I would make that a separate app. Use a simplified, read-only app for public consumption and a more fully-featured (but still not an ArcMap clone!) for things like editing and making custom maps.
I'm happy to hear that you're moving to using the ArcGIS API for JavaScript but I'd like to discourage you from trying to duplicate ArcMap in a browser. Web apps should not strive to duplicate heavyweight desktop clients, even if your goal is a light version. I would instead encourage you to build focused, targeted apps with a specific use in mind. Try to build apps that answers a specific question or addresses a specific problem rather than building something that is a tool for general analysis.