I understand that but running canFill inside of fill with result in the check being run twice. A coder using this is more than welcome to do what ever they want. I only added the minimal code changes to this class as the only thing i cared about was the IFluidBlock. As well i mimiced the code that was already there so it looked like it belonged. If you really want this to be changed wait till after this gets pulled then make a pull request to decrease misuse of the method. 

Now can you plz stop point out every defect as i'm just mimicing doDrain and calling it doFill. This way a mod fluid block can take control of how it wants to be filled threw automated processes. Most of the defects of naming, and use you keep pointing out are part of most of the Fluid classes in forge. It is not my place to correct them as it will cause issues between using forge versions. Make a suggestion to the forge team and maybe next minecraft update when they remove the old system they will change the new one.