This can happen through global connections which are made inside the device.
For example:
# NMOS transistor device extraction
extract_devices(mos4("NMOS"), { "SD" => nsd, "G" => ngate, "W" => bulk,
"tS" => nsd, "tD" => nsd, "tG" => poly })
...
soft_connect_global(bulk, "SUBSTRATE")
In this scenario, the "B" terminal of the "NMOS" device gets disconnected.
The workaround is not to use soft connections to global nets from terminal-target layers. This does not make sense anyway, as there is no way to create a separate connection to the terminals in that case.