Ohne hidelinks und mit ein paar anderen Beispielen sieht man deutlicher, dass in der Tat normalerweise nur das Jahr verlinkt ist. Das ist eigentlich für alle Einträge der Fall. ctan ist die Ausnahme, da er durch label erzeugt wird. Auf den ersten Blick hat mich die Verlinkung von "CTAN" überrascht, aber sie ist nicht ganz unsinnig, da es gut sein kann, dass es gar kein Jahr zu sehen gibt, wenn label ausgeführt wird.
Warum wird aber normalerweise nur das Jahr und nicht auch der Autor verlinkt?
Das kann ich Dir nicht genau sagen. Die aktuelle Annahme ist, dass der ursprüngliche Autor Philipp Lehman sich etwas dabei gedacht hat, daher ist man vorsichtig, daran zu rütteln. Besonders bei \textcite mit mehreren Einträgen in comp-Stilen könnte es etwas unglücklich erscheinen, dass der Name vor der Klammer automatisch zum ersten Eintrag verlinkt, denn der ist nicht wichtiger als die anderen...
Nicht durchgehende Links wie bei ctan (das Leerzeichen ist nicht verlinkt) wären ohne sehr großen Aufwand weitestgehend möglich. Durchgehende Links sind aber in einigen Stilen sehr kompliziert zu implementieren, da die Mechanismen, die dort hineinspielen, recht komplex sind.
\documentclass{article}
\usepackage{hyperref}
\usepackage[style=authoryear-icomp]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
{\usebibmacro{cite:ibid}}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}%
\usebibmacro{cite:reinit}}
{\iffieldequals{namehash}{\cbx@lasthash}
{\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
\(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
{\setunit{\addcomma}%
\usebibmacro{cite:extradate}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:labeldate+extradate}%
\savefield{labelyear}{\cbx@lastyear}}}
{\usebibmacro{cite:labelname}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}%
\savefield{namehash}{\cbx@lasthash}%
\savefield{labelyear}{\cbx@lastyear}}}}}
{\usebibmacro{cite:shorthand}%
\usebibmacro{cite:reinit}}%
\setunit{\multicitedelim}}
\newbibmacro{cite:labelname}{%
\ifnameundef{labelname}
{}
{\printtext[bibhyperref]{\printnames{labelname}}}}
\makeatother
\begin{document}
\autocite{ctan}
\autocite{sigfridsson}
\autocite{knuth:ct:a,knuth:ct:b,knuth:ct:c}
\printbibliography
\end{document}
Siehe
https://tex.stackexchange.com/q/15951/35864 sowie
https://github.com/plk/biblatex/issues/428 und alles, was da irgendwie verlinkt ist.