Het verschil is dat <br> niet voldoet aan de XHTML standaard.
Vroeger was dit nog de HTML standaard, toen was het <br> (volgens de w3c).
Na de komst van XML moest HTML er ook aan geloven en werd dit XHTML (een combi tussen XML en HTML).
Tags die afgesloten worden krijgen geen /> aan het eind, zoals <span></span>, <h1></h1>, <p></p>
Tags die NIET afgesloten worden krijgen een />, denk aan <br />, <img />, <input />, <meta />, enz
(net als bij XML. Lege nodes worden ook met /> aangeduid. Bijvoorbeeld
<merk />, maar is deze gevuld dan wordt het <merk>Opel</merk>
Het doet gewoon hetzelfde, alleen krijg je je pagina bij verkeerd gebruik niet meer valid volgens de validator.w3.org
Of <br> werkt hangt van je doctype af. In XHTML transitional werkt <br> zeker omdat het ook de vroegere html 'meeneemt', maar als je xhtml strict als doctype zet zou ik de gok niet wagen. Volgens de regels van XHTML strict kan het zeker niet, of een browser (en welke wel en welke niet...) er ook van gaat sputteren heb ik nooit uitgeprobeerd.
Je kan het ook doen door de externe links een rel="nofollow" mee te geven en deze met javascript af vangen en ze in een nieuw venster/tabblad te laten openen. Ik ben nu trouwens niet meer zo'n fan om externe links in een nieuw venster te laten openen. Die controle kun je beter aan de bezoeker over laten.