The reason it does this is to maintain the integrity of your data.
For example, imagine you have a table called Horses, another called Races and another called Race_Horses. Horses contains information on horses, Races contains race information and Race_Horses lists each horse in each race, e.g:
ID | Name | Jockey
1 | Crosseye | Mickey Jones
2 | Lucky Saddle | Philip Roberts
ID | Date | PrizeTotal
1 | 01/04/2011 | 10000
2 | 02/04/2011 | 25000
Race | Horse | Position
1 | 1 | 2
1 | 2 | 5
2 | 1 | 8
2 | 2 | 1
If you delete the entry #2 from horses without deleting the entries in Race_Horses, and the next ID did reset to 2, then the next horse added would automatically have data linked to it from Race_Horses, and according to its information page would have won a race on 2nd April, which it wasn't really a part of.
The whole point of an ID is to identify a record. If an ID in a table belongs to a record, that ID should ALWAYS be reserved for that record even if it isn't there any more.