Locales are unmarshalled with lower case country/language strings, so are not equal to the marshalled object.
Compass should probably always marshall Locale instances as UN_TOKENIZED or else store meta data to be able to properly unmarshall them.
See http://forums.opensymphony.com/thread.jspa?forumID=37&threadID=82127