There are lots of different opinions on these subjects, so I don't think you will find a definitive answer. Just because advice is published, does not make it correct. I see lots of published advice that I personally think is incorrect. Even if you get advice from an IBM person who works at the DB2 development lab, remember that almost every one of them is a product developer (who writes very low level code) and almost none of them are DBA’s, nor have they ever been DBA's.
The issue of how many joins to do at one time depends somewhat on what platform your client resides on (assuming DB2 resides on z/OS). If your client resides on z/OS (CICS, TSO Batch, etc) then making two calls to DB2 each with 4 joins may be equal or better in performance than one call to DB2 with 8 joins. That is because calling DB2 from another mainframe process is just a call to another address space on the same machine. Another factor is that sometimes (but not always) an 8-way join is more expensive than two 4-way joins. Actual testing can determine where this might occur.
However, if your client is remote (not on the DB2 z/OS) server, then you need to factor in the extra communication cost of the client talking to DB2 more than one time. So in this case, you would want to minimize the number of calls to DB2, or write a stored procedure to do the same.
Having too many joins is also an issue of the database design, and not just the design of applicaiton program in how it accesses DB2. I see lots of cases of over-normalized database designs that are the root cause of the problem.
Regarding statistics and rebinds: My personal opinion is that once a database has grown to its normal size, and is not likely to significantly increase in size, and all the static plans are bound and optimized, then there is no need to keep doing rebinds after every reorg. Presumably, the plan would be the same after each reorg, runstats, and rebind (unless the data has significantly changed). Since mainframe users (unlike open system users) are usually charged by the CPU second for every job they run (because the mainframe is shared by many users) then there is some real incentive to not run unnecessary utility jobs.