It's well-known that every computable function has infinitely many representations (when they're expressed via recursive functions, or programs, etc.). I'm trying to understand whether there are infinitely many representations that are fundamentally "different" in some way. I'm imagining using algorithmic mutual information (or another similar AIT-based measure) to define "different", but am running into problem.
The reason (that I'm familiar with) for why said functions have infinitely many representations is the padding lemma. For any given program, you can form another representation that is "padded" by taking any halting program, running that before the given program, and then just throwing away the answer and continuing on with your given program. And I understand that this means that there will be padded versions of a function that are not provably equivalent to a non-padded version of that function.
But here's my question; is there a fact of the matter about whether a given program has mere "padding" in it? That is, for any given program, could we say that there exists a non-padded version of it? Of course, a la Kolmogorov complexity, there will exist a smallest program that is equivalent to the other program, in that they represent the same function. But that's not what I want; the smallest program might work completely differently from some other (un-padded) program.
Here's an example for concreteness. There are many sorting algorithms that "feel" totally different: quick sort, bubble sort, merge sort, et cetera. But are there infinitely many sorting algorithms that all feel totally different from each other?
If the answer is "yes", then what I want to know next is whether there exist functions which have infinitely many "un-padded" representations, all of which have approximately zero algorithmic mutual information with each other.