Unfortunately there is nothing you can do short of hardcoding the URL in the template. This is a shortcoming of the parser that has been discussed many times. The alternative I’ve been considering is making that a permalink ala index.php?id=[+id+]. Any thoughts?
Hardcoding "[(site_url)]atom.xml" into the template instead of something like "[(site_url)][~11~]" unfortunately doesn’t make much of a difference (both approaches basically work which is cool), because both references point to the same page which in turn will be resolved to "atom.xml.html" or "11.html".
I guess it needs testing whether "index.php?id=[+id+]" would result in a "self" link references a non-Atom representation: text/xml> warning as well. What would the final resource for the feed be that id=[+id+] would point to? If it ultimately pointed to page, say, 11.html, we’d be back at square one.
I’m not sure in which scenarios the validator warnings might come to bear anyway, I could subscribe to my feed with either file names. Maybe this situation is just a matter of keeping it in mind and addressing it if/when the parser is discussed again?