Since in the following code, R extends Appendable, shouldn't I be able to return an Appendable where an R is expected?
No, you can't. You can only do this, if the inheritance was the other way round.
However, you can downcast result
to R
, to make it compile, but it will show you warning of Unchecked Cast.
return (R)result;