To reduce configuration cache locking a user macro cache (zbx_umc_*) was added to Zabbix 3.0. However this cache turned out overly complex, as it had to support batch operations for mutiple triggers.
Another workaround was found (and tested) for 2.2 - cache trigger expression with expanded user macros and reuse it for trigger calculations until next configuration cache sync. This achieves the targeted improvement (reduced configuration cache locking when processing trigger expressions) with much less code complexity.
It was decided to remove user macro cache and implement trigger expression caching.
In future similar improvements could be made to item processing for some fields. For example vmware items almost always will have user macros in 3 item fields, resulting in additional 3 configuration cache locks during each item processing.