ValueListMapForward( valuelist; key ) returns value
ValueListMapReverse( valuelist; value ) returns key
...where key means first field, and value means second field.
A special kind of value list capability already exists when using "Show value only from second field" combined with a pop-up layout element. This core capability could be utilized to a greater extent if exposed in the calculation engine.
The behavior of these key-value lists can, in the right environment, provide performance advantages for WAN deployed solutions. They also help to reduce the number of table occurrences needed for building layouts. However, if you need to convert from a key to a value or back in any sort of calculation, a relationship is still needed. Functions that allow this type of access could help to simplify solution design and maybe even provide a little speed boost for WAN users.
Accessing a value list from some other file might be nice, similar to ValueListItems(), although I don't think it's necessary. Honestly the only thing I hesitate on here is the weak reference back to the value list, as it is with other ValueList functions. While indirection is a nice idea, I prefer specific TO and field references whenever possible, better for DDR analysis.