I think that only messages sent between two android devices are encrypted using E2E. If you send a message to your mom (who uses a blackberry), the message won't be encrypted with that protocol.
What about ios? And how does your device know whether to encrypt or not? It's useless talking about encryption if the code is hidden. What if tomorrow they turn off the encryption silently?
They can turn off the encryption silently whether or not the code is hidden.
How so? You can compile yourself if you like.
More importantly, you could change the client to show encryption status before a message is sent and add client-side key management.
Sorry, I meant for the pre-compiled versions on Google Play and the App Store. The vast, vast majority of Whatsapp users aren't going to want to or don't know how to compile the app for their phone.