I agree with Mario on the editor side of things. And as software interested in physics probably needs to go the collision detection route anyway I'm gravitating towards it's not worth the effort.
That said we could decide to apply a variant of method 3 but only on the more simple parts like brick hinges and doors etc. For example with the doorframe you could at -90..0 and 0..90 for the front/back points. The door itself has full 360 (the default). So whenever a connection is made the engine just applies the inner join of the female and male limits.
All other parts use the default 360 freedom (The editor preserves current rotation, and only forces the alignment etc) and let the end user to the final check/corrections.
That said we could decide to apply a variant of method 3 but only on the more simple parts like brick hinges and doors etc. For example with the doorframe you could at -90..0 and 0..90 for the front/back points. The door itself has full 360 (the default). So whenever a connection is made the engine just applies the inner join of the female and male limits.
All other parts use the default 360 freedom (The editor preserves current rotation, and only forces the alignment etc) and let the end user to the final check/corrections.