If your subassembly is configurable automatically the parent (header for it) will become configurable.
so please first decide does your business process need configurable materials? If its user selecting type of thread while selecting finished product in sales order the finished product should be a configurable material or a different material number for every product color.
Please explain why you need to tie a attribute tags like color to threads if thread is a semifinished material? you can create different numbers for different color of thread.
Class type 023 is meant to be used for batch managed materials, there is no compulsion to use 023 along with 300. you can maintain class 023 in classification view of material master (MM01,MM02), complete settings to activate batch management and you would be able to input characteristic value while receiving this material through GR.
In ECC configurable material works only with make to order strategies , make to stock configurable material is not possible.
Please check and reply.
Also please mark replies helpful if it helps you.
Thanks
Ritesh