You don't store the photons only in the leaf nodes. Every node of the tree IS a photon - i.e. each node of the tree has exactly one photon. The number of nodes in your tree is equal to SCENE_MAX_PHOTONS and you can store them in a preallocated array.
You can make a KD tree structure with fixed storage requirements if you use a balanced KD tree. This is well described in Henrik Wann Jensen's book (it's probably in his papers too if you don't have the book). The key is that when you split your photons, you always split on the median (so that there are an equal number of photons left and right branches of the tree). The resulting KD tree is a complete binary tree, and its structure is known completely beforehand. As a result, you don't need any variable size storage, or even pointers.
Also I have an implementation of 3D signed distance transform in GPU Gems 2, chapter 8. You can find it here: ftp://download.nvidia.com/developer/GPU_Gems_2/CD/Copy%20of%20Index.html
The code is in dispmap/distance.cpp.
It sounds like you should go for the PhD. The fact is that most PhD's don't wind up in academia, especially in a field like computer graphics where so much of the research comes from industry. In fact, if you look at the proceedings of Siggraph or other graphics journals you will see that a huge percentage of the papers come from industry (MSR, NVidia, Intel, Pixar, ...). When you think about it, there are way more PhD graduates than academic positions. Why? A typical professor may create dozen's of new PhD's in his career. How many faculty positions does he create? One: the one he opens up when he retires. So don't worry about being forced into academia, because only those who are really dedicated to staying in academia will make it (and not all of them will). Most PhDs go into industry.
If you are interested in research related to game development specifically, I would be wary of game companies. A few of them do good cutting edge research, but many of them are just interested in churning out more titles. It should be clear which ones are which: look at who is producing good papers. If a game company thinks a PhD makes you overqualified, chances are you don't want to work there. Generally a better bet would be companies like Intel or NVidia where researchers generally have more freedom, since they are less constrained by hardware and deadlines. Of course this changes all the time, and the landscape might be quite different by the time you finish.
My background: I almost entered PhD studies for computer graphics, but switched to physics at the last minute because I decided I liked it more. I wrote one good paper in computer graphics, and already that was enough to get the interest of game studios and other companies. So my impression is that a PhD can only help you.