Sí, subcadena. No necesitas hacer un Math.min; La subcadena con un índice más largo que la longitud de la cadena termina en la longitud original.
¡Pero!
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
Esto es un error. ¿Qué pasa si document.referrer tiene un apóstrofe? O varios otros caracteres que tienen un significado especial en HTML. En el peor de los casos, el código del atacante en el referente podría inyectar JavaScript en su página, que es un agujero de seguridad XSS.
Si bien es posible escapar de los caracteres en pathname manualmente para evitar que esto suceda, es un poco molesto. Es mejor usar métodos DOM que jugar con cadenas innerHTML.
if (document.referrer) {
var trimmed= document.referrer.substring(0, 64);
var link= document.createElement('a');
link.href= document.referrer;
link.appendChild(document.createTextNode(trimmed));
document.getElementById('foo').appendChild(link);
}