I think you are right, XEP-0045 indicates to use the room occupant JID instead of the real JID when sending a message:
7.8 Sending a Private Message
Since each occupant has a unique room JID, an occupant MAY send a "private message" to a selected occupant via the service by sending a message to the occupant's room JID. The message type SHOULD be "chat" and MUST NOT be "groupchat", but MAY be left unspecified (i.e., a normal message). This privilege SHOULD be allowed to any occupant (even a visitor in a moderated room).
Example 57. Occupant Sends Private Message
<body>I'll give thee a wind.</body>
Also, SMACK documentation says the same:
// Start a private chat with another participant
Chat chat = muc2.createPrivateChat("firstname.lastname@example.org/johndoe");