Instead of this:
{exp:channel:entries param="{exp:some:plugin}"}
...
{/exp:channel:entries}
Either use an embed, like this:
{embed="channel/entries" value="{exp:some:plugin}"}
{!-- And the embedded template: --}
{exp:channel:entries param="{embed:value}"}
...
{/exp:channel:entries}
Or use the plugin as a tag pair (if supported), like this:
{exp:some:plugin parse="inward"}
{exp:channel:entries param="{plugin_value}"}
...
{/exp:channel:entries}
{/exp:some:plugin}
Or add your own suggestions below.
@jeromecoupe: EE provides a method for add-on devs to easily parse variables. But that method will automatically add {count}, {total_results} and {switch} to the mix. That's why there's conflicts. Not much you can do about that without getting complicated.
@croxton: The main reason why it's bad, is that it will not work in all cases. It might work in some, but inconsistency is a big pain to explain.