Generally, the flow is that the client identifies itself as being of a certain Vendor type using the VendorClass option (16), and then the server returns special data for that vendor type of client in the Vendor Specific Info option (17). So, you probably would not choose an address-pool for a client based on a suboption in the Vendor-Specific Info option (17), because I would think that it would be rare for a client to send option 17. Due to that assumed use-case, there is no matches() implementation in DhcpVendorInfoOption to make use of in a filter to choose a certain pool. However, it should be possible to support this if such clients exist that send option 17.
You *should* be able to filter using DhcpVendorClass option (16), as that is the typical use case. However, as you have discovered, the DhcpVendorClassOption.matches() implementation is broken. A bug will be entered for this issue. Once again, I appreciate you finding and reporting any issues you have.
Thanks again,
Greg