The Feed Validator (http://feedvalidator.org) gave me a thumbs-down :( Entries' IDs have to be valid URLs, you see, and I'd been using them as arbitrary labels. I'd also been leeching off these arbitrary labels in order to create anchors in the XHTML representation of the feed; those using a web browser can check they work by clicking this item's title; those using a news aggregator can visit the alternate link; in both cases, the item's title should be at the very top of the browser window.
I managed to circumvent Atom's rigidity using XML's flexibility - I invented a new arbitrary label for each item -
label, under my own namespace; I now have everything working as before, plus a valid feed. Glory!
I think I'll go and play a bit of pool now...