You forgot to handle the near clipping plane, which should be:
ret = WVPMatrix + WVPMatrix;
It is always a mistake to simplify the near plane “just because it’s only a small difference”.
Are there any obvious bugs?
#1: Your formulation of the math is suspect.
The plane’s dot product is with the center of the AABB.
But assuming the math works, you definitely will always get a positive (true) result because:
#2: You are returning true if the AABB is in front of (or intersecting) any plane on the frustum, which will always be the case in a well formed frustum.
You should instead be checking for the opposite, and returning false if the AABB is fully behind any plane in the frustum.
You should return true only if the AABB is in front of or intersecting all planes.
Additionally, Irlan is correct in mentioning the use of enumerated values for the frustum.
Furthermore, a plane<->AABB test must return either. FRONT, INTERSECT, or BACK.
If you are concerned about performance (as you should be with a frustum test) you will store planes with a -W (negate them after you extract them from the matrix). This simplifies many plane equations, such as the one you have posted, which requires you to repeatedly (perhaps 100 times per frame instead of 6?) negate the W.