I dug into the API around trees. It's pretty interesting actually; the devs just extended the Nauvis Tree prototype to create a Plant that grows instead of dies. This is why, while there are multiple sprites per image file, they are all the same size, as they are used as variations instead of animations.
It took me a while to figure out what the "normal" images are used for (as the docs do not mention that), but it seems they are used for animating the leaves, so the name likely references normal in terms of geometry. "Leaves" in the API meaning of the word, as the files are called "harvest", but they are registered as leaves.
Anyway, the TreeVariation does support color tinting, but the default trees already have that, used for color variation on the fruits (see the prototypes):
local function minor_tints() -- Only for leaves where most if the colour is baked in.
So I added a way to customize that. Due to how the tinting works, some of the color dynamic range is lost, but a more uniform color for the fruits is probably helpful anyway.
Long story short, I added this in v2.3.0. Let me know how it works for you.