Is it possible to make the player "inhabit" another actor? I seem to recall reading something about it.
If so, you could potentially use a pair of invisible butterflies. Stick the player's POV on one of them and the make the camer look at the other one. Set up a couple of spline translations and you should be able to make the camera do whatever you need.
Assuming we can do the POV switch of course.
(Maybe an AI controlled PC clone, and turn the real PC invisible and scale him/her down to nothing. Then translate the PC and the player can watch the clone doing the PC part in the cutscene...)
I've looked in to inhabiting another Ref, and from what I can tell that doesn't seem possible. However, assuming you don't mind moving the PC, you could use this method (invisible focus object) to pull it off.
Perhaps a generic "steadicam" camera control function library should be written?
Edit: Perhaps something like:
Camera.StartCameraFromRefToRef(ObjectReference StartRef, ObjectReference EndRef, float MoveTime, float StartAngleX = Game.GetPlayer.GetAngleX(), float StartAngleY = Game.GetPlayer.GetAngleY(), float StartAngleZ = Game.GetPlayer.GetAngleZ(), float EndAngleX, float EndAngleY, float EndAngleZ)
Camera.StartCameraFromRefToPosition(ObjectReference StartRef, float EndPosX, float EndPosY, float EndPosZ, float MoveTime, float StartAngleX = Game.GetPlayer.GetAngleX(), float StartAngleY = Game.GetPlayer.GetAngleY(), float StartAngleZ = Game.GetPlayer.GetAngleZ(), float EndAngleX, float EndAngleY, float EndAngleZ)
These would allow you to specify a starting reference (for instance, the PlayerRef itself, or some other ObjectReference, like an invisible marker), allow you to specify how long the camera shot should last and the end Reference or Position (depending on the function), which together would determine the shot speed. It also allows you to specify a start and end angle, and part of the function's job would be to rotate the camera from the start to the end angle as it moves along its path. Since we have to use the player in first-person mode to act as a camera, part of these function's jobs will be to store and recall the player's position after the camera shot is done, so that when the shot is over we can move him back where he started, none the wiser.