one of the reasons why a DS instance 'slows-down' in the long term COULD BE due to the page fragmentation/occupation and/or the presence of tombstones (and empty graves: segments with deleted entries) in the underlying DB.
If you have a huge DB with a lot of writes (ADD/MOD/DEL) it's reasonable that after a long amount of time the DB may become a bit fragmented. Depending on the version, there could be different approaches and techniques to overcome this problem: repacking is one of them (with a long and troubled history, this feature has been available originally since 6.x, disabled in 7.x, re-enabled in 22.214.171.124).
Re-initializing the DB, COULD BE a good idea, but it strongly depends on WHAT you use to re-init: if you use an LDIF WITH the replica information, you'll be mostly rebuilding the DB and indexes, so reducing the fragmentation at 'filesystem level', but you'll still keep a lot of 'garbage' (tombstones and graves) in the DB and indexes themselves.
IMHO the only way to completely refresh the content of a Directory Server instance would be exporting to LDIF WITHOUT the replica information, and then re-init with that: this will generate a 'new and compact' DB and set of indexes not only reducing the fragmentation at 'filesystem level', but also it will be 'purged' of all the tombstones and empty graves left over by previous MOD/DEL operations.
The non-trivial downside of this approach is that if you're dealing with a replicated environment (which is very common), you'll also have to perform a full top-down topology re-initialization.
Yes, for a full topology re-initialization you need to start from a "clean" master, built without the previous replica informations, and then from there you could start initializing all the replication agreements in sequence.