I found a solution!
Source of the problem: The contents of conditional value list are determined by the first record in the relationship specified in the value list definition. And, the first record is determined by the sort order defined on the relationship.
Work-around: Ensure that the relationship sort sequence always places the records displayed in the portal first:
- create a global field, gPortalRecordType, that allows the user to select one of the possible values for Field A
- create a calc field, cPortalSortOrder, on the portal record (= If (FieldA = gPortalRecordType; 0; 1))
- define a sort on the relationship specified in the value list definition based on cPortalSortOrder
- define a portal filter: FieldA = gPortalRecordType
The solution is too complex. It should be easy to have a conditional/related value list work based on the currently selected portal row without creating global junk fields.