I see the problem.
The biggest potential issue I see for you is the potential lack of (existing) cart compatability with a new structure.
Whilst a new more flexible design (and the use of ecart) would be beneficial, you may want a shorter term solution.
Perhaps you could try adding cushions to the existing products table, (perhaps adding an 'accessory' flag to the table), so that...
The cushion options only appear on the sofa/chair pages.
The cart will not permit the addition of cushions unless a valid item is already in the cart
Or even easier, add a chair with cushions or sofa with cushions as an additional SKU, meaning you don't need to change anything, other than the database content.