A way to show only selected modules syndicated content is to take advantage of the way the default rss.aspx and search mechanism returns the information. The module name is appended to the rss item, which can be parsed and filtered by a custom xsl to render only the modules you want displayed.
For example, when you want to use internal syndication and selectively choose which modules to display, name your modules with something to use as a filter. You could place a announcement module on each department's page titled 'MyDepartment Info'. Then, use the following custom xsl on a New Feeds (RSS) module placed on the home page.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xsl"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<div>
<xsl:apply-templates select="rss/channel"/>
</div>
</xsl:template>
<xsl:template match="rss/channel">
<xsl:variable name="link" select="link"/>
<xsl:variable name="description" select="description"/>
<xsl:variable name="image" select="image/url"/>
<xsl:variable name="idesc" select="image/description"/>
<xsl:variable name="ilink" select="image/link"/>
<xsl:variable name="iwide" select="image/width"/>
<xsl:variable name="ihigh" select="image/height"/>
<div class="rssChannel">
<xsl:if test="$image">
<a href="{$ilink}" title="{$idesc}"><xsl:value-of select="ilink" /></a>
<img src="{$image}" height="{$ihigh}" width="{$iwide}" style="float: left; margin: 2px; border: 0px;"/>
</xsl:if>
<a href="{$link}"><xsl:value-of select="title" /></a><br/>
</div>
<div class="rssChannelDescription">
<xsl:value-of select="description"/><br/>
</div>
<div class="rssChannelsubHead">
<xsl:value-of select="webMaster"/><br/>
<xsl:value-of select="copyright"/><br/>
<xsl:value-of select="lastBuildDate"/>
<hr/>
</div>
<xsl:apply-templates select="item" />
</xsl:template>
<xsl:template match="item">
<xsl:variable name="item_link" select="link"/>
<xsl:variable name="item_title" select="description"/>
<xsl:variable name="myTitle" select="title"/>
<xsl:if test="contains($myTitle,'Info')">
<div class="rssItem">
<a href="{$item_link}" title="{$item_title}"><xsl:value-of select="title" disable-output-escaping="yes"/></a>
</div>
<div class="rssItemDescription">
<xsl:value-of select="description" disable-output-escaping="yes"/><br/>
</div>
<div class="rssItemSub">
By: <xsl:value-of select="dc:creator"/><br/>
(<xsl:value-of select="pubDate"/>)<br/> <hr/>
</div>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Now, only the modules syndicated content with 'Info' in its' title will be displayed on a New Feeds (RSS) module using the custom xsl.
I'd agree that there are some issues with this approach due to the caching, and searchItem entries not always being updated in a timely manner. The approach I take is to use the Host account, go to the Schedule option, and re-index content, and update. Then, the search mechanism kicks in and parses the modules, adding syndicated content to the SearchItems table. There's a few other gotchas, but this should work for most situations.
The custom xsl provided includes some references to css sytles, which can be used, but in this case, if there is not a style available, the parser will disregard them. Also, you can modify this xsl to only display the latest announcement by using some other item filters such as position testing, and a lot of other functions. This is just one way to approach it.
Cheers,
iwonder