Well, I actually tried both methods (i.e. using only Logic, or using Mainstage being triggered by Logic.
Logic only has a few downsides:
1) Having to make sure that the appropriate tracks were "Record Armed" everytime when you open the next song for all of the vocals and guitars you want to use.
2) I was using a screenset with a floating Marker Editor window that had the lyrics that changed with each section of the song, but it won't save the window's state in the screenset. It always defaults the two panes to a large marker list, with small lyrics window.
You have to drag the pane divider each time you open the project to see all of the lyrics.
3) Clearly Labeled screen controls. The mixer window is too small and cluttered. The environment won't let you edit the size of the text labels (as far as I know), and I was having trouble getting it to associate correctly with the tracks that I wanted to adjust.
4) No loopback plugin in Logic for real-time sound on sound type stuff.
When I use both Logic and Mainstage, I only use Logic to send MIDI data and be a time keeper. No audio is coming from Logic. So mainstage still handles all of the patches and plugins. You don't even have to see Logic. It's just open in the background, and starts playing when I send my play command.
For project switching live, what I do is create a small Applescript that opens each Logic project, and then set one of my foot controllers to trigger the script on each new set.
For more on that, see this: https://www.youtube.com/watch?v=rg8E9CRPQRg
It only takes about 5-10 seconds for the whole process to complete (depending on your computer.)