BOM cost recomputes shared parts

Code reviewHard20 min

Your task

Review this Go function that prices a bill of materials by recursively expanding sub-assemblies. Deep trees with shared sub-assemblies are extremely slow.