Well, the Out-of-Order engine of CPUs are designed to fill up the pipeline & keep Execution Units busy to crank out the highest IPC possible. It will always try to execute something with the execution resources it has... if it can.
What CPUs are rather doing to prevent the power consumption & heat development of cores to get out of hand is toy around with the voltage & frequencies.
Because with that you can save power consumption in a squared fashion. So inherently there are more power savings gains there.
You are usually better off trying to keep more of CPU core's execution units occupied. The power consumption from using more execution units only scales in a linear fashion rather than in a quadratic fashion.
With other words you could hypothetically get more done for the same amount of power invested than if the CPU tries to maintain higher voltages & frequencies to do the same in serial fashion on a lesser amount of execution units.
So if you never use Float or if you never use Integer instructions you are kinda wasting potential performance regardless.
I mean, in principle the CPU core will look ahead and look if there is something it could potentially do. But the out of order window is usually limited. If the distribution of Ints/floats is very one sided for a long time, it potentially screws the performance because it could have higher IPC but the program just doesn't let it exploit that.