It looks like the language in section 5.5 Casting Conversion of Java 7 JLS was updated in comparison to the same section in the Java 5/6 JLS, probably to clarify the allowed conversions.
Java 7 JLS says
An expression of a reference type may undergo casting conversion to a primitive type without error, by unboxing conversion.
Java 5/6:
A value of a reference type can be cast to a primitive type by unboxing conversion (ยง5.1.8).
The Java 7 JLS also contains a table (table 5.1) of allowed conversions (this table is not included in the Java 5/6 JLS) from reference types to primitives. This explicitly lists casts from Object to primitives as a narrowing reference conversion with unboxing.
The reason is explained in this email:
Bottom line: If the spec. allows (Object)(int) it must also be allowing (int)(Object).