Right now I’m creating copies of all layers, flatten them all (the copies) to a single layer, and apply blur to this layer.
But can it be done without having to create copies of the layers I want to blur? Adjustment layers can be used for this sort of stuff, but I can’t find any that is able to apply blur. Is it possible?
To the best of my knowledge, you can’t do it exactly the way you are asking.
The quick and dirty way, without duplicating the actual layers and then flattening them, would be to
Copy Merged (Ctrl+Shift+C) and paste to a new layer.
Another potential workaround is to group all the layers you want to blur and convert them to a smart object. You can then apply a non-destructive smart-filter blur to the smart object. The drawback is that you now have to edit the smart object as a separate document which may introduce too much friction into your workflow.