In general, we need the most specific tag relating to the question. So I can easily imagine graph-algorithms being more specific than graph-theory. Also, ds.algorithms is special in that it's an arxiv tag, and we have desired as far as possible to keep at least one arxiv tag for each question. So I'd say the main distinction is between graph-theory and graph.algorithms, and the wiki for graph-theory could say something like
If your question pertains specifically
to algorithms on graphs, you should
use the more specific
graph-algorithms
and the wiki for graph-algorithms could say something like
This tag is specifically for
algorithms on graphs. For more general
graph theory questions, please use
graph-theory
ds.algorithms itself should emphasize that it's an arxiv tag, with something like
ds.algorithms is a component of the
arxiv cs.ds categorization, and should
be used on all questions that relate
to the design and analysis of
algorithms. While the design and
analysis of data-structures also
includes algorithms, the more specific
ds.data-structures should be
used for those questions. For
algorithms in computational geometry
for example (which has its own
top-level tag cg.comp-geom,
algorithmic questions should use both
ds.algorithms and cg.comp-geom.