The Dreamhost shell access is not limited in any way, and has a large complement of standard *nix tools (Debian, to be precise) for you to use consistent with the TOS and available resources. As with any properly administered shared *nix system, various process monitoring systems are in place to prevent a rogue user, or "borked" program, running amok and rendering the system unstable or unusable for others sharing the box.
As for "sub-accounts" and "re-seller" packages, Dreamhost does not implement their system in the way you are thinking. Each nix user has their own "space", which can be limited to ftp access or be given full shell access. Traditional *nix permissions dictate "who can do what, to whom they can do it, and in whose back yard it all happens" The degree of "jumping around" between the directories of your "sub-users" (users instituted under *your account) is controlled how you structure these users, groups, etc using standard *nix permissions.
Each Dreamhost plan allows n number of users, ftp accounts, email addresses, bandwidth, and storage, etc. (and allows the hosting of an unlimited number of domains and sub-domains!) - how you "distribute" these resources (and "bill" or "charge" for them) is up to you, but you have to manage it.
You can allow "account Administrative "privileges" of varying degrees to other users under your account from within Dreamhost's custom Control Panel. This is not cPanel, or any other commonly encountered shared hosting administration system, but Dreamhost's own tool.
I'm not sure if that answered your question; if not, just post back and ask for further clarification or visit the Dreamhost Wiki to explore further (all this and more is covered there!)