One of the biggest differences between D4 and a Haas control in my eyes is how the tool library works. In D4 there are two choices, D or T, and you pick one and stick with it. I use T and have never tried D. D works a bit like the Haas tool table, in that all programs can access it, but, but as I understand it, you have to invoke D in every block that needs compensation. With T compensation, each program has a tool table in the header part which is not accessible to other programs. Once you call a tool using a T command, that tool's compensation sticks until you call a different one. Under the T approach, it behooves me to keep a list of tool lengths and radii off-line, so I don't have to set tool lengths every time I write a new program and create a tool table.
D4 also does not have anything like the G54, G55, ... work offset table in Haas, although there is a G54 command in D4 that works similarly.
Other differences between D4 and Haas have to do with which commands are modal or not. For example, canned drilling cycles in Haas are modal, but not in D4. There are others which I don't keep track of, because I rarely finger-CAM Haas but mostly finger-CAM D4.