Those are kind of technical questions that I can't really answer, but my experience is that it's perfectly fine to use conditionals to create 3 entire versions of a template. My forumdisplay_x_* templates all have 3 versions: 1 for forumhome, 1 for forumdisplay, and another for the user CP.