So reading the man page , looks like the only reason why it won't try to create the ~/.dbus directory is if it attaches to an already existing session. So if "DBUS_SESSION_BUS_ADDRESS" is set, it will just attach itself to it, without invoking a new session, seems like a good way to prevent unnecessary calls.
If you are on redhat, try installing strace, which basically helps you trace the process. Atleast it will confirm if the below is true. Other than that, I have no more ideas on how to debug this. Maybe someone else on the forum has more experience with dbus and can pitch in.
Quote:
If DBUS_SESSION_BUS_ADDRESS is not set for a process that tries to use D-Bus, by default the process will attempt to invoke dbus-launch with the --autolaunch option to start up a new session bus or find the existing bus address on the X display or in a file in ~/.dbus/session-bus/