For commands and widgets I've found the following to work well:
(( $+commands[screen] )) && # do something with screen
(( $+widgets[history-incremental-pattern-search-backward] )) \
&& bindkey "^R" history-incremental-pattern-search-backward

But, 1) I can't seem to rediscover the documentation for those
arrays,

and 2) Is there such an array for things that are more inbuilt? In
particular, I'm looking for a test that the ':A' history modifier
exists.

If you haven't recorded the version when it first appeared so you can
use the is-at-least function, which is the usual way (as long as you
do it as soon as the feature appears it's painless),

Is there any support for ZSH_PATCHLEVEL in is-at-least? :a and :A were
added in ZSH_VERSION=4.3.10(-dev-1?) ZSH_PATCHLEVEL=1.4618.

you have to attempt to make use of the feature and record the result.
integer history_A
( : ${PATH:A} ) 2>/dev/null && history_A=1

Both of these seem slippery-slopy. (Easy for one feature, but
increasingly annoying as more tests are needed. Also, if a given
feature takes non-trivial time to test.). Nonetheless, I guess I don't
have some easy-peasy way to add the feature detection to the case
statement in Src/hist.c and a new parameter in Src/Modules/parameter.c
(<-- note to self in the unlikely even I get back to this), so I'll
retreat with: