State is bad. Caching like this should be avoided unless absolutely necessary.

Nothing wrong with "duplicate objects" like this, it should be down to the client whether they need to cache them or not unless there is a reason they need to be identical pointers.