I noticed that I actually have one layer that is working with the identify widget with subtypes, but only one. Also, the eSearch widget displays all of them just fine.
The subtypes are just listed in the Subtypes: section in the feature class properties, with a code and a description. It's a long integer field. The subtype field is set to the "subtypeCode." The fields in the 2 tables are the same data type (long integer), same length, same name. Of course, they have different codes and descriptions.
I compared the working layer - manholes - to one of the nonworking layers - poles, and I don't see a difference in the REST service directory for the layers. As it's working with eSearch, I'd think it'd have something to do with the identify widget config, but I really dont' see anything there. I have the same values for the 2 layers and one works, while all the others don't.