For funsies, let's regroup these by similar values.
white pansies: 01 (0000 0001)
white cosmos: 01
white tulips: 01
white violets- 01
white lilies- 03 (0000 0011)
white roses: 04 (0000 0100)
yellow cosmos: 0d (0000 1101)
yellow pansies: 0c (0000 1100)
yellow tulips: 0c
yellow lilies- 0c
purple violets- 0c
yellow violets- 10 (0001 0000)
yellow roses: 30 (0011 0000)
red pansies: 30
red cosmos: 30
red tulips: 31 (0011 0001)
red lilies- 31
red roses: c1 (1100 0001)
So what we find is:
- No species has two (standard) colors with similar values.
- Most flowers have only one or two flags set, with a couple of the few exceptions having only one or two per "digit" (nybble? whatever it's called). The only complete exception to this rule is yellow cosmos, which still only have one digit with flags set.
- White flowers are the most homogenous group, with all having low values; lilies are the only ones with more than one flag set
- Purple violets have a value more similar to most yellow flowers, while yellow violets have a unique value. You'd think it'd be the other way 'round.
-- This might have something to do with the fact that yellow violets have no hybridization potential.
- Yellow roses have a value more similar to most other red flowers, and red roses have an entirely unique value. Since the value for white roses is slightly different than most other white flowers, this makes roses the most "unique" family; this is possibly related to roses having the largest number of hybrids possible (I think?)
I'd love to do an overall look at the family trees of each flower species, but given that most of the guides are... confused at best, it'd be hard to get into details.
- In most species, redxred produces black, and also pink in roses, which can also be achieved with redxwhite
-- Exception: carnations, which obviously don't have a black version; instead redxred apparently produces pink?
- Yellow x red produces orange in all species that have both parent colors. This is probably the most consistent rule.
- White x red is the next most consistent, producing pink in all species that have all three colors (pansies having the parent colors but not pink). Pink roses can also come from red x red.
- In two species, whitexwhite produces a hybrid- blue in pansies and purple in roses. Ironically the reverse (blue roses and purple pansies) are the two most elusive hybrid colors.
- Wilted black x golden watering can produces gold in roses; gold x gold roses produce yellow.
- In violets, white x purple (which has yellow-like flags) produces a blue hybrid; in no other species does white x yellow produce anything.
-- Violets (and carnations?) are the only species where no two flowers of the same color can produce a second color.
So there's definitely some consistent rules underlying the flower hybrid system, and I suspect the flags mechanic is meant to facilitate this- take the flags of the two flowers doing the breeding, do some arcane math on them, and then compare the result to a lookup table for the flower's species. That way the function could be simplified, as the species doesn't have to be considered while calculating the outcome.