Mark, a thought, somewhat unrelated, but maybe you’ll like the idea enough to add it to your plugin, or create another version ...
Let’s say I want to have a single template which shows closed, draft and open entries to members in groups 1 and 7, and only open entries to everyone else. To do this currently, you need to do:
{if member_group == "1" || member_group == "7"}
{!-- either the full weblog entry loop, or an embed with a parameter of statuses:open|closed|draft, and the weblog entries loop must live in a separate template. --}
{if:else}
{!-- the weblog entries loop repeated --}
{/if}
What if instead we built off your plugin so that there was a variable called groups, which stored member groups who could see all statuses, and another parameter called public, which stored statuses for everyone else:
{exp:retrieve_statuses group="Default Status Group" groups="1|7" public="open" parse="inward"}
{exp:weblog:entries weblog="default_site" status="{statuses}"}
{!-- weblog data goes here --}
{/exp:weblog:entries}
{/exp:retrieve_statuses}
What do you think?