To elaborate, if a TODO has a deadline in the future, then it should be shown on the agenda for today beginning at the Scheduled Date (Today if no Scheduled Date) and continue showing on each successive day until the Deadline is reached. During that time, mark the TODO as due in plus days (d+10, for instance).
After the Deadline passes, continue what you're doing now (ie. 'd-10') to show the deadline is passed.
I want to start looking soon at a more flexible way of building what appears on the Agenda and Tasks tabs - and allowing custom 'views' to be created. I'll bear in mind your above points when doing so.