First things first...You don't need shared journal storage for clustering. Shared journal storage is only used for HA functionality (e.g. fail-over). Clustering and fail-over are independent in HornetQ.
That said, the functionality you're describing (one node picks up another node's messages upon failure) is HA and not clustering. In that case, you'd have to configure a live/backup pair and use either shared journal storage or network based replication. Read more in the HornetQ documentation - High Availability and Failover.
As to whether or not a message posted to node A can be consumed by a client on node B without shared journal storage, the answer is "yes." For that kind of functionality you'd need to configure clustering. Read more in the HornetQ documentation - Clusters.