Answer
A reference-type custom field can only connect to a view whose Logical Unit actually has a base table — views built on top of a 'ProjView'-style LU (a purely computed/joined view with no base table of its own) aren't valid reference targets, which is why that specific view wasn't selectable. To check whether a given LU actually has a base table before trying to reference it, call DICTIONARY_SYS.GET_BASE_TABLE_NAME(lu_name_ => 'YourLuName') — if it returns a table name, the LU is a valid reference target; if it returns nothing, it isn't, and you'll need to find an alternate view whose LU does have a genuine base table instead.