There's always going to be some bodging, unless you want to have to use the windows functions as they are intended to be used.
Of course more gadgets and some more functions couldn't hurt. And some things BLitzplus does make no sense. For example, if I change the position of a canvas with a windows function, Blitzplus will remember the position it last set instead when I use GadgetX(). This makes no sense, because it should just be calling the windows function to get the gadget's current position. But it doesn't. It stores the data itself in a structure somewhere. Forcing me to code my own GadgetX function that returns the real gadget location.
Of course more gadgets and some more functions couldn't hurt. And some things BLitzplus does make no sense. For example, if I change the position of a canvas with a windows function, Blitzplus will remember the position it last set instead when I use GadgetX(). This makes no sense, because it should just be calling the windows function to get the gadget's current position. But it doesn't. It stores the data itself in a structure somewhere. Forcing me to code my own GadgetX function that returns the real gadget location.