One more iteration that addresses last batch of suggestions, in particular:
2 different constructors for ComponentList one without Filter, the other with const ref to a Filter. No pointers across the API altogether. Comments and test case updated accordingly.