I, personally, wouldn't separate them out by function. I would only create separate VCMP instances out if you had, say, a reason to:
1. Load balance on different segments, so a VCMP guest per segment, and that really depends on your security posture, since you didn't say anything about AFM (so there wouldn't be FW's between segments in this case).
2. If it's to be on a single segment, if you had apps with different maintenance windows or different user role/access requirements (but there would have to be, IMNSHO a really, really strong case to warrant the latter).
Otherwise, you'd have to maintain, ostensibly, duplicate configs if you had different guests for different functions and that's just asking for outages and troubleshooting nightmares.