I would not say a const reference breaks encapsulation. If it returns const, it means "this data is not meant to be modified by any outside code," and if the programmer breaks that, then it isn't the fault of the class and encapsulation is not threatened.
The programmer who breaks the const is the one doing the wrong and when we remember that classes are objects which are typically separated from any outside code, this means that the class itself didn't do any wrong, but the outside code did, and this doesn't really hurt the encapsulation of the class, but rather a programming error, one that shouldn't be made because it's const.
You're giving a clear message here and if the programmer who uses the class choose to ignore that, it's not your fault.