Not a silly question at all. 
Yes, it is possible — but mostly manually.
Since all characters use the same skeleton, you can export the animation keyframes from Blender (or another DCC tool) and then load/apply them to another character that has the same bone hierarchy.
Internally, each bone simply reads its position / rotation / scale keys and applies them to itself.
Demo:
Castle Game Engine\examples\animations\animate_bones_by_code
General workflow
1- Write a script to export animation keys from Blender. (Parent bones and child bones must NOT be exported the same way)
2-Load the keys from a file into arrays (or another data structure)
Each character’s bones must have either:
1-individual behaviors that apply the keys, or
2-one shared behavior that drives all bones
A procedure that:
pushes the keys over time to play the animation
handles transitions between old and new keys (blending) for smooth results 

At the moment, CGE already has low memory usage even when loading many animations, so in practice you won’t gain much in terms of memory or performance by doing this.
Where this approach can be useful
Playing partial animations (upper body only / lower body only, etc…)
Reducing the total number of animations
Reducing animation work inside Blender
In the future, I plan to complete a practical example of implementing this method, which may be useful for some special cases.