Here are a few other options:
Your question seems to imply that there are properties in components that should be retained while others are being discarded. Take a closer look at the component(s) in question. Can the properties you want to retain be split off into a different component?
If splitting off properties into another component is not an option you also have the option of creating a flag/marker/tag component (there are many names for this construct).
A flag component has no real data in it, but is required by a system to process a given set of components. Let's take your Goblin entity's AnimationComponent for example, with a flag component in play your AnimationSystem will expect a node with (at least) the following components:
- AnimationFlagComponent
- AnimationComponent
If you remove the AnimationFlagComponent the AnimationComponent won't be processed by the AnimationSystem even though its still attached to the Goblin entity. If you want to re-enable the Goblin's animation simple add back a AnimationFlagComponent to the Goblin entity and voila your Goblin is again animated.
Given your situation, these approaches are much cleaner than 'pooling' your components unnecessarily. But hold on to the pooling idea though, there are use cases that require it.