Verifying is only part of the promised solution. Assuming you've verified your own or someone else's device, Element still marks some messages as untrusted/unverifiable. Especially ugly if you get a new device or want to deprecate an old one.
The promised functionality doesn't really work reliably enough to protect against MITM, causes ugly warnings, but has been totally unactionable for years now.
Cross-device works with QR codes, unless your client doesn't support it in which case you can use emojis. For user verification emoji actually makes sense, since it basically allows you to remotely verify without access to the QR code.
You can do verification with either emoji or QR codes. Honestly I think the emoji version is far better for cases where you're verifying identities without meeting in person (one person says what the first 4 are, the other says the last 4).
I had issues with verification a while ago but recently it's worked perfectly fine.
I don't know what went wrong, but it still needs work. I'm glad to see that it's easier than last time I tried that.