It is true that a 301 (permanent) redirect is better than a 302 (temporary) redirect for SEO.
The reason is because you do not want the same content to be indexed under more than one "key", or it looks like you are trying to spam the search engines.
The PortalAlias feature in DotNetNuke is not intended to be used in this way. Each PortalAlias should be used to map to a unique portal. When there are multiple domains pointing to a single portal then you should use SiteUrls.config (or some other method) to map them to unique content.
The reason that a 302 redirect happens instead of a 301 is because the Rewrite method in ASP.Net can not rewrite the Url to a different domain, so a Response.Redirect is used which is a 302 redirect. It's a lot harder to do a 301 redirect in asp.net but it can be done.
The question is, should the core code be trying to guess why you have more than one domain mapped to the same content and if you want a 301 or a 302 redirect? My opinion is that it would probably be better if you handled these kinds of decisions outside of the core code, but it wouldn't take that much to change that re-direct to a 301 instead.
BTW, I have done a tricky little change to that part of the UrlRewrite code that actually makes all this work without any re-direct and actually makes the content come from a specific tab within my portal, but keeps the orginal domain name. I do it by internally doing a web request to the actual tab and grabbing the content (a.k.a. "screen scrape") instead. So now I have more than one domain that gets the content from different tabs withing my same portal. As long as I never expose a link to the original tab on my main portal, then the search engines see that as a seperate domain, with it's own content. I'm going to take this even further by making a skin that displays different content depending on the Url, but you can see what I mean by doing a
Google search for DotNetNuke Skins
The top result actually goes to a tab on Snapsis.com. Once you are there, there is another tab for CSS Template Skins, which goes to another domain, but that domain is a different tab on Snapsis.com also.
The whole thing is not completely finished, but this is also my solution for doing "Portal Groups" where it may look like you have several different portals, but they are actually one portal and therefor offer SSO, and back-end admin management.