To add to Noah Schweber's answer, the property of convexity is a major nice feature because the family of convex sets in some metric space is closed under arbitrary intersection. That is one reason why it is usually most convenient to allow an interval to be empty. Another reason is that it makes life a lot easier when reasoning about intervals using interval notation defined using the affinely-extended reals denoted by $\def\rr{\mathbb{R}}\def\rrr{\overline{\rr}}$$\rrr$:
$[a,b] = \{ x : x \in \rrr \land a \le x \le b \}$ for any $a,b \in \rrr$.
$[a,b) = \{ x : x \in \rrr \land a \le x < b \}$ for any $a,b \in \rrr$.
$(a,b] = \{ x : x \in \rrr \land a < x \le b \}$ for any $a,b \in \rrr$.
$(a,b) = \{ x : x \in \rrr \land a < x < b \}$ for any $a,b \in \rrr$.
If intervals did not include singletons or the empty-set, then not all of the above notation would refer to intervals. We could of course stipulate that we are not allowed to use the above notation unless $a < b$, but there is good reason not to, because it is convenient to agree with the integer range notation:
$[a{..}b] = [a,b] \cap \mathbb{N}$. Similarly for other intervals.
For integer ranges it is incredibly useful to have $[a{..}a] = \{a\}$ and $[1{..}0] = [a{..}a) = \varnothing$.