Many of the 'deletes' in DNN are not a physical delete, but rather a 'logical' delete. These are not bugs, it is an intentional design pattern. The 'delete' is done by setting a logical 'deleted' flag on the database record.
There are several reasons for not deleting a record:
1) in the case of tabs and modules, it allows the use of a 'recycle' bin so you can retrieve accidentally deleted information
2) because the database has referential integrity removing the 'source' record for a table such as the 'users' table may leave dangling orphaned records in other tables designed to refer back to the user record. An example might be forum posts : if you delete the user record, then any posts made by that user would then be left without a parent record to refer back to. This would either make the posts disappear, create some type of null reference error, or worse, some type of obscure bug somewhere else that is very hard to trace back.
3) in the case of the users table, you probably don't want to be able to duplicate the users id in many cases. Depending on the type of site, if you could re-register a previously deleted user (by using the same username) then it would be possible to spoof a users' details by registering a user with the same name as an old user. This is the sort of security hole it is better to just avoid.
Because DNN is a highly extensible system, the developers of the user management components can't make the assumption that it is safe to delete the user record. Therefore, the delete is handled by a 'logical' delete, so the database record stays where it is, and other modules referring back to the user record can make an assumption that this will always be the case.
The username uniqueness is enforced (from memory) by the database, because it has a unique key contstraint on the username field. This is why you can't re-use the same user, because it must be unique across the logins.
If you must re-use a user id, I would recommend changing the username to something else (ie user_old) so you can re-use the username again. But I wouldn't make a habit of it.