Most of this was playing with console commands, namely setrace and tc.
Here are my findings so far.
Merely being a horse does not make one rideable - I've changed other creatures and character's races to horserace and the ride command is not available. On the other hand, changing a horse that is already rideable to another creature keeps the ride-command available, and it works...to an extent. The player has control over the creature and follows its camera, though it does move with it. Rather, the player floats in place. It seems like rideability may be something that is set per-instance in the CK (or possibly that the rideability flag does not get flipped when using setrace).
Certain races will disable certain interactions - you can't 'talk' with a character that has been changed into a horse, but you can talk with a character that has been changed into a dog! Fascinating stuff.
I'm pretty sure creature riding works something like this:
1. An instance of the creature is marked as rideable in the creation kit.
2. When the player choses the 'ride' interaction with this creature, they play a riding animation (followed by a riding idle), and try to root themselves to a specifically named node in the creature's skeleton (this is how it worked in oblivion). Failing it find it, they just hover in place.
3. After parenting to the horse, an internal version of the command "tc" is run on both the player and the horse. This switches the player to being AI driven (where they do absolutely nothing), and the horse to be driven by player commands.
Choosing to interact again while on the horse reverses this order of events so the player can dismount.
What I find *really* interesting is if you can convince a character or creature to go into the combat stance, and then take over with 'tc', you can make them attack! If we end up with a way of convincing the creature we are riding to enter and stay in combat stance, mounted combat will be possible.
Sorry if this is a little illegible, it's kind of a brain dump.