I found a strange behavior while playing with custom bees with Forge.
I looked for clues and found the same thing in the genuine code.
The attribute FLYING_SPEED seems to only be used in the method tick() of the class FlyingMoveControl if the entity is not onGround, which seems OK.
tick() sets the field speed of the LivingEntity according to it via setMoveSpeed().
But later, in the method getFrictionInfluencedSpeed() of LivingEntity, if the entity is not onGround, it uses this time the field flyingSpeed.
flyingSpeed seems to never change and be constant to the instanciation value of 0.02F.
Maybe the method tick() should set the field flyingSpeed instead of speed if the entity is not onGround because if I'm not mistaken, it seems that the FLYING_SPEED is actually never used.
Comments

Yes, it is correctly used to define how much the entity would travel forward and vertically. So if the speed is 0, it doesn't move.
But summoning bees with different speed :
/summon bee ~ ~ ~ {Attributes:[{Name:"generic.flying_speed",Base:0.3}]}
/summon bee ~ ~ ~ {Attributes:[{Name:"generic.flying_speed",Base:4.2}]}
/summon bee ~ ~ ~ {Attributes:[{Name:"generic.flying_speed",Base:121.0}]}
Shows that they all incorrectly travel at the same speed.
The problem is in a check of the speed against friction :
private float getFrictionInfluencedSpeed(float ☃) {
if (this.onGround) {
return getSpeed() * 0.21600002F / ☃ * ☃ * ☃;
}
return this.flyingSpeed;
}
If the entity is not onGround, almost always for bees, it doesn't check the entity speed against friction, it simply return the constant value that flyingSpeed is.
This issue might be related : MC-172801

This should be resolved as a duplicate of MC-172801.
I can't reproduce this
This summons a bee that can't fly horizontally, contrasted with a normal bee. The same behavior can be seen with parrots.
Please comment if you can get more details about this issue in vanilla