However, to be effective, the space should be overwritten with different junk, several times over, and wiped between each write. This puts a huge overhead on the time taken for defragmentation to complete. If this security aspect is of no concern, then there is no benefit in clearing unused space. This process should ideally be repeated three or more times. It doesn't really matter what is written - but how many times it is written.
Verification is nothing short of common sense.
Data is physically moved from one location to another and it is only right that you should ensure the integrity of such data movements. Defrags will certainly be quicker without it, but at great risk to your data integrity. You could choose not to sort programs so they launch quicker, but the benefits of sorting outweigh unsorted defrags - especially when the application usage logs provide a fair representation of the programs you use most often. Startups will be quicker, but if you're constantly changing your startups, the usage logs will be of no benefit. If you don't have a routine, sorting files may provide no benefits whatsoever.