It is always a good idea (especially in so-called Agile projects) not to stick to some cargo cult or text book telling you "who should (not) talk to whom", but switch on your brain and do whatever works best in a project.
Though the communication between PO and the customer should be the standard (because of the reasons scetched by @PatrickHughes in his comment), you may face a situation where a complex business requirement has to be clarified, and the direct communication between a dev and a business expert will speed up things a lot. In such a situation, one should avoid playing "chinese whisper" with the PO in the middle, and let the dev and the business expert directly talk to each other - for this restricted context.
However, the PO should never be bypassed. Ideally, he takes part in that conversation, probably as a moderator. He can verify the customer does not bring up completly new requirements on the table during the talk, or requirements contrary to what was agreed upon before.
This depends also on the people involved, and the situation. The PO might have enough trust in the specific dev and the customer's expert, to let the two talk alone about a specific topic, and let him or her report what was said afterwards. In another situation, with other people involved, he might prefer to take a more active part. To get this decisions right is the core of good project management.