Hi Ben,
I see. The problem is that the common intuition for how to compute things that is based on _starting_ with the covariance matrix isn't valid when what we have more direct access to is a sparse precision matrix. Nearly all expressions can be reformulated (usually using the "matrix inversion lemma") into expressions that do not actually involve the marginal observation covariance matrix. In short, when we work with sparse precision matrices, we rarely need to compute covariance matrices, and most quantities can be evaluated using a different set of standard computational expressions than those based on covariances.
For example, to evaluate the density for the observations, conditionally on the covariance parameters, one can rewrite the expression into functions of the field precision matrix Q_x, the conditional observation precision Q_e (typically a diagonal matrix) and the data-conditional precision for the field, Q_{x|y}, which is equal to Q_x +A' Q_e A, when A is the observation matrix (from fm_basis() or inla.spde.make.A()). The details can be seen in Section 3.1 of my notes on how to compute with Gaussian Markov random fields (a condensation of the relevant methods from the Rue&Held 2005 book on Gaussian Markov Random Fields) available at
https://webhomes.maths.ed.ac.uk/~flindgre/cuso2019/gmrf.pdf
One of the few cases where we might explicitly want to have access to elements of the covariance matrix for y, S_y = Q_y^{-1} is to access the pointwise marginal variances at the mesh nodes.
These can be computed by selected/partial inversion of Q_x, plus the noise variances;
y_var = diag(inla.qinv(Q_x)) + diag(inla.qinv(Q_e))
Approximate variance evaluation can then be done with A %*% y_var, or (A %*% y_var^0.5)^2.
As long as A' A has non-sparsity that's contained in the sparsity of Q_x, the variances of A %*% x can also be obtained using tricks with the partial inverses; some of that is also written in the gmrf.pdf document.
To specifically answer your last question: It is possible to construct the mesh so it includes specific locations of interest (but this isn't always a numerically beneficial approach), but
you can _not_ obtain the joint precision matrix for _just_ those points by removing the other rows and columns from the matrix; doing that would only give you the _conditional_ precision matrix, i.e. the inverse of the _conditional_ covariance matrix, given all the other points. This can be seen either from the matrix inversion lemma or from block matrix inversion calculations;
If the covariance is
S = [S_{AA}, S_{AB}; S_{BA}, S_{BB}]
and the precision is
Q = [Q_{AA}, Q_{AB}; Q_{BA}, Q_{BB}],
then
Q_{BB}^{-1} = S_{BB} - S_{BA} S_{AA}^{-1} S_{AB},
which is the conditional covariance of block B, given block A.
Conversely, the _marginal_ precision matrix for block B is
S_{BB}^{-1} = Q_{BB} - Q_{BA} Q_{AA}^{-1} Q_{AB},
but there are few cases where calculating this is useful.
Finn