Case 3 illustrates what we call a "narrowing primitive conversion". As mentioned in the
Ergnosis' unofficial JLS errata, the second edition of the JLS does not contain anything related to double-to-float conversion.
Moreover, as can be seen on the chart available at
Conversions and Promotions, a cast is definitely needed to convert a double to a float.
Bottom line: The distinction between an int and a byte is definitely not comparable with the distinction that can be made between a float and a double due to the bytes representation (IEEE 754) of doubles and floats.