According to what Zenerka said, we just need particles and sound, the rest is up to the person mapping. So not much to code here, is there?
The problem I see with destroyable objects is that its a "property" assigned to a brush - so you would have to split up e. g. a fence in a lot of small brushes that are func_breakables so the damage seen will be any near the impact position. That results in a lot of brushes, and a lot of entities - which have an upper limit as Mattn just stated, not to mention performance costs.
Its probably the best to have a few brushes that are destroyable - which the player can guess - like windows, that fence, an already cracked wall, chairs.
At least with the current 'break-system' thats more suitable than having the goal of a even nearly realistic breaking behaviour of most map pieces.