I dont really consider it too much of a problem but there are unique identifiers in plaintext for (almost?) every message to make federation and E2EE work. If an 3ncrypted, federated room receives a message, its participants need to know what key to use for decryption and in some cases what specific device ID was used to request the right keys.
What I find particularly strange is that my messages also contain the event identifier a message is a reply to outside the E2EE envelope, as well as the message type for example. If you can get your hands on a database, you can find reply messages and see the messages part of threads without having to decrypt anything. I'm not entirely sure why the server would need this information, perhaps for making notifications work efficiently?
You can see this for yourself if you enable dev mode in Element, hold/right-click a message and hit "show source". You can also compare that to the result of "show deceypted source".
All of this metadata is being transmitted over HTTPS, of course, unless you're using some local devices setup. It's not literally plaintext but the envelope stored on the server contains much more message details than Signal's.