Hallo,
Kannst Du vielleicht noch erklären, wozu die eine Methode dient und wozu die andere?
HTML und SVG sind unterschiedliche Markup-Sprache und ihre Elemente/Attribute gehören verschiedenen Namensräumen an. Beispiel: Das Element p existiert im HTML-Namensraum, aber nicht im SVG-Namensraum. Das Element circle existiert in SVG, aber nicht in HTML. Das Element title existiert in beiden Namensräumen (mit unterschiedlicher Bedeutung).
Nur durch eine Sonderregel im HTML5-Parser kann man in HTML direkt <svg> usw. schreiben und es wird als SVG erkannt.
createElement erstellt ein Element im HTML-Namensraum.
createElementNS erstellt ein Element im von dir angegebenen Namensraum. Das kann z.B. der von SVG sein (bezeichnet durch http://www.w3.org/2000/svg).
Mathias