yes, visible bounds is reading the non-visible masked objects too.
you're going to have to do it the hard way, loop through all your objects to get your bounds manually, and while you're at it, test for clipping masks and use the masking path instead.