Thanks for all these points
To overall reply to you, I need some time to study your post in detail, currently our team are in tight schedule, I will get back to you soon, thanks for your patience
It turns out I was wrong in my second issue above. The request.getAssetIdentities() call in my CanEnableCustomCheckInUIHandler and GetCustomCheckInUIContextInfoHandler both return empty Iterables. In these two handlers I have no visibility into any of the assets being checked into the repository. This seems like a bug to me. I have tried this from Explorer, InDesign and Photoshop with the same result.
For the first issue and the second issue, yes, it's a design limitation, we will try to resolve it in the coming dot release, thanks for pointing out them
For the third issue, I think you can manage the context info for each item by utilizing IGetCustomCheckInUIContextInfoHandler, you can establish a data structure for the requested items, this structure will be passed to the your custom UI module, the UI module understands it and returns the context info to ICheckInHandler in the custom parameters, in a word, you should establish a comunication protocol between IGetCustomCheckInUIContextInfoHandler, the custom Flex UI module and ICheckInHandler about how to pass and manager the context info.
Regarding how to prevent a check-in, please provide your deep thoughts on it, we can discuss that in detail