I read it before and don't understand why dmg should not be used. I understand dmg as a Tar like archive and the user places all stuff where ever he wants.
The use of dmgs is recommended. The typical use of a dmg is to contain the complete application. The user double clicks the dmg, the disk gets mounted on the desktop, the directory opens in the finder and the user drags the application wherever he wants, preferably /Applications
Why shouldn't apps be installed the right way, either /Applications or /usr/bin?
What do you mean by installed the right way?
/usr/bin is not supposed to be used by anyone else than Apple. A typical Mac user does not even know it exists. Directories starting with a lowercase letter are not directly visible in the Finder. In case your program is a simple binary and not an application bundle, you should probably put it in /usr/local/bin.
For me it's necessary (or would be nice) if a patch can be downloaded and installed easily by my program. I simply use OpenDocument(), and with dmg it just opens the content and the user has to move all stuff to the right position. With pkg that procedure is more like an update and needs no knowledge for special folder (pkg are updloaded zipped and decompressed before execution). It's the same procedure on Windows (msi) or Linux (dpk, rpm).
I am not sure whether I understand you right, but the required user interaction does not sound very mac-like. A plain dmg without installer is only useful for the distribution of a complete application, but hardly for a partial update. A complete new application is actually how most applications are updated. The user drags the complete new version to /Applications. If an older version is present, he is asked, whether to replace the existing, older one. You cannot assume the user to drag the update part of your program to a particular location, maybe with the exception of very simple and unambiguous cases. Isn't it possible to copy the update to its place from within your program and restart the program?
In many applications the user can now select built-in automatic and online updates. I haven't looked into this until now, but, maybe, this is an option for you?
Could you give some more details about your program? Then we would not have to discuss all possibilities out there in the universe.