I generally find that the event_queue_id and id values are same for all the tuples in the civicrm_mailing_event_delivered table. Why do we need a separate event_queue_id then? Can two tuples in this table have the same event_queue_id?
It is a foreign key to the civicrm_mailing_event_queue table. It is in lockstep since all your emails are being delivered etc and thence the two tables are in sync. However there is no guarantee of this and you cannot rely on it, hence the need of the foreign key.