It would also be hard to do a reverse loop:
for i := len(something) - 1; i >= 0; i-- {
// ...
}
Would be an infinite loop if i is unsigned.
That demonstrates the following observation. While values of len are always non-negative, the operations that are done with output of len may sometimes result in negative numbers. You don't want to limit yourself from being able to use -1, etc.