Suppose I have a package linked from another project with patches
(project*.diff) on top of it. Now the other package is updated and
the patches no longer apply. osc rdiff doesn't work because it can't
apply the patches either. How do I verify how and which of my
changes got applied to the linked package?

very valid question. I'm interested in the answer since that took quite
some time out of me already :-(
(Pretty annoying, even more if that happens in the development project
when someone is changing the package on a lower level what happened in
the past sometimes :-()

the best thing, what you can do currently is to checkout unexpanded
(osc co -u) and verify the patches manualy.

In this case it would be nice if the build service could freeze the
link at the last known to work version. One could run rdiff then.