Respostas:
l()
permite o HTML também, você só precisa passá-lo como uma das opções:
$link = l($image_html, $path, array('html' => TRUE));
Isso interromperá a passagem do primeiro parâmetro check_plain()
, para que o HTML completo que você passar seja envolvido na <a>
tag.
Eu recomendaria usar esse método se a alternativa é escrever o link manualmente, você obtém o benefício da tradução automática de alias e é menos propenso a pequenos erros no HTML (dos quais eu sempre carrego).