I did not read the paper that you link to, but I've noticed the option (and been using it) to relocate objects based on Silhouette statistic, to improve clustering results, for long. There is collection "Clustering criterions" on my web-page with the document about internal clustering criteria where I wrote for Silhouette index:
Using silhouette value for improvement of a clustering. That for each
object the closest to it other cluster is known opens an opportunity
for improving a classification. Object(s) having Silhouette statistic
too low comparatively with other objects of its cluster can be
reassigned by the user to the cluster closest to that object (its code
is output by the macro), then rerun the macro to see if that transfer
enhanced the object’s Silhouette statistic and the average Silhouette
statistic of the entire cluster solution. One might do that transfer
several times with the same or different objects (there comes out a
kind of a relocating cluster algorithm aiming to improve
classification without altering the number of clusters). Average
Silhouette statistic ceases to improve soon, but some while its
variance can still be decreasing, i.e. thickness of some cluster
silhouettes be increasing.
Often but not always such post-clustering reassignment does improve the overall final Silhouette a little bit. One problem is that it is difficult to decide unquestionably which objects and how many objects at once should be moved from their clusters to their neighbourhood clusters. It is a combinatorial optimization task optimal solution of which would be time expensive. (So in this respect I agree with @Erich Schubert's answer.) Designing a clustering algorithm, even greedy one, that will work on the basis of such relocating maximizing Silhouette from the very start will be even more burdensome.
For the classical (original) Silhouette index which calculates average of distances, classic between-group average (UPGMA) hierarchical clustering is the most natural approximation or kinship; roughly speaking, this method tries to optimize cheaply something close to Silhouette statistic.
In a footnote to this answer and under the link there I mention that all clustering algorithms each aim to optimize some approximation to one of the many internal clustering criteria (Silhouette being just one of them). "Approximation" - because an exact optimization of a given criterion will often present a task very expensive to solve or don't know how to solve, nowadays.