Mainly because of html validation.
I got many validation errors, see example using tidy html mostly:
line 428 column 13 - Warning: missing </span> before <div>
line 429 column 60 - Warning: inserting implicit <span>
line 430 column 13 - Warning: discarding unexpected </span>
line 541 column 125 - Warning: trimming empty <span>
line 389 column 11 - Warning: <a> cannot copy name attribute to id
Using DIV instead of SPAN would solve those issues. So what is the reason not to use div?
Related question: Why is q2a using the span-tag instead of the div-tag?