The interface of the DiagonalMatrix lacks some methods that generic matrices do have. Examples I encountered are operator(row,col), setConstant, coeff, but there might be more. These are meaningful and should not be hard to add.
On an additional note: multiplication, addition, subtraction of two diagonal matrices does not seem to be supported
The lack of accessors is on purpose. We don't want to permit diagmat(i,j) because this is a very inefficient way of using a diagonal matrix. We could allow it in the case i==j, but then it is equivalent to use .diagonal()(i) instead of (i,i).
Regarding higher level operations, yes they are planed. Need the evaluator refactoring first.
Added diagmat +/- diagmat: https://bitbucket.org/eigen/eigen/commits/62af0dc73df3b2