I use FreeCAD as a fast STEP file viewer, and saw that you are adding some assembly capabilities and desire to stay close to ISO 10303 on product definitions.
The CAX-IF has some recommended practices released that deal with STEP assemblies that may be relevant. In particular, you could implement assembly import/export using Nested External References
which basically puts each part CAD model and each indenture of the assembly structure into separate files. This is useful for things like Late Loading that you mention in the FreeCAD wiki in some potential implementations.
The above document references the PDM Schema Usage Guide which also has information that may be useful to you
Here is a link to the PDM Schema in EXPRESS (just for reference)
You can find AP203 and AP214 schemas on
The open source STEP Class Library (SCL) project on github can generate C++ class libraries from these EXPRESS schemas, and a part21 (STEP file) reader/writer executable. Thomas Paviot of OCE and pythonOCC is working on python generation from SCL. (The open source BRL-CAD uses SCL to generate some of their STEP CAD translator code).
One could use SCL to generate the part21read code to build a FreeCAD STEP assembly importer/exporter that would enable interoperability with PDM and CAD systems regarding assembly structures built with nested external references. There are sample nested external reference sets of files for AP203 and AP214 from Catia V5, ProE and Theorem Cadverter for UG NX here
My recommendation is to start with an importer first, then you only need to figure out which entities and types in the files need to map to things in FreeCAD. It will also give you an idea of what information FreeCAD is likely to receive in a file and thus may want to represent, and export in the future. Exporters are a little harder since you likely will have to generate more complex structures that are not in FreeCAD.
I am comfortable moving this discussion to an open group like scl-dev on google groups if you (and others) wish.