You're right that the corrections assume independence of the tests. However, the Bonferroni correction in the case of non-independence is over-conservative (see for example here) so it's OK to use if you're fine with that. The same goes for the Benjamini-Hochberg FDR correction, see this paper. So using these corrections approaches in the case where the tests are not independent is perfectly justified.
Does it accurately correct for error in these instances?
What do you mean by this ? Bonferroni does strictly control the type I error rate.
The problem with the Bonferroni correction is that for large numbers of tests, it becomes way too conservative to the point where one doesn't find anything significant which is why in such cases, people prefer to use the FDR approach.
There's no single correct way of dealing with multiple testing. It really depends on the situation and on how costly are the false positives (type I error) versus false negatives (type II error).