I thought that might be the case. $CDS_INST_DIR in a cds.lib is not actually the value of the environment variable, but a special sequence which means something to the tools. In the dim and distant past (I think prior to IC443, so something like 13 or 14 years ago), $CDS_INST_DIR was interpreted as an environment variable. This was fine until Cadence split their tools into separate "streams" (in the early days all Cadence products were released together in a single hierarchy, but this stopped being sustainable as the range of the portfolio increased). Since a single environment variable couldn't point to more than one stream, the interpretation of $CDS_INST_DIR in a cds.lib was changed to mean "the installation that the tool reading the cds.lib is coming from". So that means that virtuoso/icfb will interpret as meaning the IC hierarchy, whereas Assura would intepret as being the ASSURA hierarchy and so on.
The incantation that I gave you:
is an additional construct that says "find the hierarchy using your UNIX path that contains tools/dfII/bin/virtuoso under the root".
Alternatively, if you'd set your environment variable to something other that $CDS_INST_DIR, for example $CDSHOME, and then referenced $CDSHOME in the cds.lib, that would have worked too. Other environment variables in cds.lib are interpreted strictly as environment variables - you've just hit a problem because $CDS_INST_DIR is a special case.