I had a look at all free/libre feed readers I could find in the Firefox Marketplace:
Alir seems to be primarily an app for reading webpages offline; feed reader is only a bonus, and doesn’t seem to have many features because of that (yet at least).
cloneReader didn’t work for me (and might lack offline support anyway).
dogfeed made a nice impression, but requires remoteStorage and Sockethub instances.
FeedMonkey requires a server (TinyTinyRSS, ownCloud News, or Pond).
FeedReader made a nice impression, but some feeds didn’t work. It seems that it can save entries for 4 weeks at maximum.
FeedSpider: couldn’t test it, as it’s not reviewed yet, and the Firefox Marketplace requires a login for installing it.
FireReader made a nice impression, but only supports the service The Old Reader.
MyWebRSS made a nice impression, but requires a server: MyWebRSS API, ownCloud API, or Selfoss API.
SimpleRSS made a nice impression, and was the only reader that could handle all feeds I tried.
While I’ll consider self-hosting a feed reader so that I can use dogfeed, FeedMonkey or MyWebRSS, these are not suitable solutions for this question.
For now, I’m using SimpleRSS.
It had the best typography of all tested apps and makes for a nice reading experience. This screenshot shows an article (the "npf.io" in the heading is the feed name):

Features:
- You can read entries per feed, or have all entries in the same list ("Timeline").
- Very nice search: updates results while typing, searches also in feed entry bodies (not title only).
- Can import OPML (from Web or SD card) and export as OPML (to SD card).
- You can edit title and URL of added feeds (not all tested apps made this possible).
- When browsing with Firefox, you can add a feed URL to SimpleRSS via the Share option.
- You can scroll horizontally when the entries is too wide, e.g., for complex tables (wasn’t possible with some tested feed readers).
- You can configure the timeline to keep 50, 100, 200, 500 or 1000 entries. The oldest entry will be deleted when this threshold is reached. But …
Drawbacks:
- It’s not possible to mark entries as favorites, and there is no way to delete specific entries manually. So this means I can’t save entries forever.
- Hiding read entries is only possible globally, not per feed or on the fly.
- No pinch to zoom (but offers a button for zooming one level).
- Refreshing feeds is only possible globally, not for specific feeds only.
If SimpleRSS would get the ability to mark specific entries as favorites (which never get deleted), it would be a perfect match for my requirements.