In your Rules you can replace all those lines with:
gMyGroup.members.forEach[i|i.postUpdate(OFF)]
However, while it is more efficient in lines of code, it runs just the same.
Using Groups can help in a lot of other situations as well. See this post for some details.
In Sitemaps Groups can make things easier but be aware that when you use a Group, you have no ability to customize how the Item appears on your sitemap.
Yes. By using Groups I was able to reduce my total lines of code by more than 50%.
I find them less useful on the Sitemap.
Not really but if you search the forum for Design Pattern you will find lots of uses of Groups in Rules. But there is nothing OH 2 specific about it. The concepts work the same in both.
No. Groups or lack of Groups is no different between the two.
You should use persistence with restoreOnStartup. This will initialize your Items to what ever they where when you saved the .items file or restarted openHAB. See the following for how I set up persistence.