All the major SAS string handling functions have a macro equivalent:
%index
%substr
%scan
%upcase
%length
Especially when using %scan, one often has to use %sysfunc(countw()) to initialize a macro loop.
So I propose to create a macro equivalent of countw, namely %countw, similar in function to %scan with regards to delimiters and modifiers.