How do I make a rule that deletes a node when it hasn't been viewed for "X" amount of time?
I am unfamiliar with any current modules that accomplish this. D7's default structure does not store last_accessed or similar statistics outside the watchdog, which would be complex to parse and use.

IMHO accomplishing this goal would involve creating a custom module that :


Adds a field to store a 'last accessed' field linked to your nodes.
Hooks into hook_node_view to update this field each time a node
is viewed
Hooks into hook_cron to conditionally select any nodes with
viewed age greater than your maximum. Call node_delete for each. You could also set $node->status=0 and archive the content without deleting it.


Optionally, you could also add an admin dialog through hook_menu that set a variable defining the maximium unviewed age of nodes.