Currently I ignore the problem, and treat each fibre pair as a single "connection" on a single "port". If we start mixing in some BiDi then I'll think I'll be forced to split "ports" as required, e.g. 1 becomes 1A and 1B, which will be messy, especially as it'll involve adding extra rearport-to-rearport cables.
I think if it were the other way round, and I were using mostly single fibres with occasional pairs, then I'd prebuild everything with single fibres. In that case, a duplex connection would just connect to the first port and I'd have to mark the second port as busy, somehow - perhaps by means of its description. (An interface has an enabled/disabled flag, but a frontport doesn't).