It is theoretically possible that the new value could be nil for all options meaning that `@updated` would be false / nil even after a successful run.
If the first entry of a feed changes its url feed.new_entries will then contain all entries of the feed, even old, already seen ones. find_new_entries_for only looked for the url of the first entry from the last run to determine when the list of already seen entries starts. Not finding the url, it did add all entries to new_entries. Instead of using url, using id (which has a fallback to url) fixes this bug.
This helps prevent parse failures when there is a problem with the last modified header. For example if the Last-Modified header is empty like on http://feeds.kottke.org/main.