Like Flint from gravel, the chance for a sapling to drop from destroying a block of leaves is a static percentage whenever you destroy the block.
Most likely, you've just been badly treated by the random number system. Keep planting the saplings you do find, and eventually you'll start coming across the 9-saplings trees again. ;)
After a bit of testing, I think I have determined the cause of this bug. It actually has nothing to do with how far away you are from the block. In fact, it seems to have something to do with a bug in Minecraft which has been fixed known as "click mining".
When you mine a row of blocks the "normal" way, standing directly in front of them and holding forward, the system works properly. Say you're mining a row of dirt blocks with a diamond shovel. There is a small amount of delay between each block's destruction and the next block destruction's beginning. If this is hard to understand, basically the arm has to swing back up before the next block can get hit, so there's a small amount of delay.
Someone discovered this and introduced "click mining" to the scene. All you did was release/repress the mouse button after each block was destroyed. This instantly returned the arm to the "unswung" position, eliminating the delay between each block's destruction. Notch figured this out and introduced a small delay after you press the mouse button down, so it negated the time advantage of click mining.
However, when doing the method you described, the block is broken before you're in range of the next block. So really, there's a small period between each dirt block where no block is in range. This instantly returns the shovel to the unswung postion, so there's no delay between blocks. The click mining fix only adds a delay after mouse presses, and this is not a mouse press, you're just holding it down, so there's no delay. Essentially, you've found a way around the click mining fix.
As for tall grass, it still works with grass on top of it. However, you must be aiming for the bottom of the block, because if the tall grass gets in range, the swing delay is reintroduced, leaving you with the delay again.
Long story short, yes, it's a bug. Still, it's sorta useful in select situations, but those situations are rare, so it's not a really big problem.
Best Answer
There may not be any problem for your method, but it may take forever for the trees to grow if you use the minimum height.
Here's a screenshot showing me growing trees with your pattern, and it works:
The most common spruce tree (the one in my screenshot) can grow into 7 to 10 blocks (not sure about the maximum) high, but you need an air block between the top leaf block and the ceiling, so the minimum height is 8. (I see
7
on Minecraft Wiki, but I've tried 7 block and no matter how many bone meals I give the saplings they just don't grow.OK, with 8 blocks of air vertically, I am able to grow them, but it may take forever. The reason behind this is that, every time a tree grows, it picks a form, and if the space requirement doesn't meet it will simply not grow and wait for the next chance.
Right now I've already run Minecraft half an hour, and I only see one shy little spruce sapling grown into a spruce tree naturally. So I believe if you want to get spruce trees to grow fast enough you will need at least 11 blocks vertical empty space or just give them hundreds of bone meals.
If you don't have that much space, you can try to sing "I'm a sapling" 9 times in a row, repeatedly. i.e.:
Update:
A variant of the spruce tree shown in the screenshot is 7 blocks wide, so to further increase grow rate you can make each sapling separate by three blocks, but this is not mandatory and will decrease the tree density.
There are also two forms of spruce tree (those which look like tall sticks), and they are... very rare. I think I just planted more than a hundred of spruce trees with bone meals and I don't even get a single spruce tree in those forms! The conclusion: you don't need to reserve 18 blocks of empty space to accommodate those forms of spruce trees.
Forgot to add credits: smooth stone room built by MCEdit.