Потому что незачем. Во-первых, все уже написано и не раз. Во-вторых, штатный sort в общем случае работает не хуже. В-третьих, в моду входят задачки, требующие не столько умения пользоваться сортировкой, сколько обходиться вообще без нее. Взять, к примеру, вот эту с собеседования в Microsoft.
1. Анаграммы
Имеется массив человеческих слов. Некоторые слова могут являться анаграммами по отношению друг у другу. Надо найти количество таких слов, причем сложность алгоритма должна быть линейной.
Очевидное решение — отсортировать сами слова, потом отсортировать массив, пройтись по нему и посчитать количество слов с самоподобными соседями.
На CL это можно написать так:
(defvar *words* (list "thore" "ganamar" "notanagram" "anagram" "other"))
((lambda (words)
(loop for (a b c) in
(mapcar #'list words (append '("") words) (append '("" "") words))
count (or (equal a b) (equal b c))))
(sort (mapcar (lambda (one-word) (sort one-word #'char-lessp)) *words*) #'string-lessp))