Just some quick thoughts.
To me most of the features you suggest look like a special case of what
is already implemented in Manuel Kauers et al.'s ore_algebra package--
which uses Sage, but is not part of it or even submitted for inclusion
yet. Note that even though ore_algebra is mostly about recurrences with
polynomial coefficients, it also provides specific parents for operators
with constant coefficients. (I don't remember if they implement any
features specific to constant coefficients, though.) It would probably
be a good idea to use and/or extend it as much as possible, and strive
to be compatible with it in any case.
That being said, in ore_algebra, the main objects are recurrence
*operators* (among other kinds of linear operators), without initial
values. I think there is also room in Sage for *recurrence sequences*
that really behave like sequences. (In fact, I was planning to implement
recurrence sequences with polynomial coefficients myself, based on
ore_algebra.) Your interface goes in that direction, but it also
contains things such as guess() and random_object() that do not belong
there if the mathematical object you are trying to model is a sequence.
IMO it is useful to distinguish between recurrence operators and
*solutions* of recurrences (and possibly inhomogeneous recurrence
equations in between). And in general, a given class should model only
one kind of mathematical object!
Best wishes,
--
Marc