alla fine ho risolto nel modo più semplice, eliminando plugins/content dal link dopo essere passato da JRoute
$link="index.php?option=com_componente&Itemid=".$itemid."&task=lista&id=".$id;
$seflink=JRoute::_($link);
$seflink=str_replace("plugins/content/", "", $seflink);
sicuramente non è il modo più corretto, ma per ora è l'unico modo che ho trovato. Anche per JURI::root() ho usato lo stesso sistema
$livesite = str_replace("plugins/content/", "", JURI::root());
in seguito usando per tutto lo script la variabile $livesite.
Però mi piacerebbe capire perchè aggiunge sempre il percorso dove si trova il file, probabilmente perchè è un file esterno da joomla.