Prefabs are always a pain in the b*** like this.. I rather simply having a disabled instance (we call it "prototype") and clone/instance from it instead of from a prefab. This way I don't have to do large amounts of housekeeping just to initialize references.
I remember reading in the Unity forums that this was an optimal approach for iOS-development since it was more performatic, but my lead coder doesn't like it much 'coz if you change a variable name in the script Unity loses reference to any inspector-created links. Personally I don't care, I just name my variables properly from the start *ahem*
Does anyone know of any "serious" downside to that approach?