Smart zoning and Peer zoning should both work well. A couple of points:
1) From an Initiator's point of view, it will not be able to tell whether it's in multiple single initiator / single target zones or one single initiator / multiple target zone. When it queries the name server it will get back a list of FCIDs and there is no way for it to tell based on this list how the zoning was done.
2) From a Target's point of view, the target will notice a difference if SIST is used because when it is, the response to a NS query will contains fewer FCIDs. This means that each target will place less of a load on the NS (no queries about other targets) and overall this is good for fabric stability.
That having been said, given the average size of our customer's fabrics, either SIST or SIMT will work fine in the vast majority of cases.
The only downside to either Smart or Peer Zoning is that you still need to create the zones manually and this is where Target Driven Zoning will help.
If you're interested in more detail about zoning in general, see this blog post.