Note that Hexen already implements a basic version of this for use with the "localized [earth]quake" effect. The "problem" is that this is ad-hoc and offers no means for customization or scripting.

Ideally, camera animations would be scriptable logics. We could separate the camera from the player mobj so that the camera follows a player; this movement logic could then be implemented using the mobj thinker mechanism (and ultimately with a script rather than a native function).

BTW: when playing Hexen I noticed that this effect was curiously exaggerated. Instead of an earthquake tremor it felt like the player was jumping back and forth by a couple of meters. It is possible there is a magnitude error here related to the fracunit refactoring, or the effect simply should be toned down a little. (Should compare with vanilla.)

However, the effect I'm thinking about for the "screen shaking" would be a mixture of XYZ position and camera angle changes -- something akin to a handheld movie camera being shaken by an external force (although obviously the player is not a handheld camera).

camera animations would be scriptable logics

That would be useful. At least it should be possible to start this kind of an effect via script.