Ja warum dann denn beide Elemente, wenn man dasselbe erreichen kann?
Es gibt schon Unterschiede. Zum Beispiel ist span ein Inline-Element darf also laut HTMl-Standard keine Block-Elemente enthalten. Dagegen darf das dav-Element als Blockelement z.B. nicht in Textabsätzen vorkommen.
Die Darstellung unterscheidet sich natürlich auch in Browsers, die kein CSS können.