The problem with dynamic addition and removal of rows and columns in the middle and left/top of the board is that it would require storing all of the settings for all of the cells. (There are no getters for multiboard item properties.) This is of course impossible to do in a by-value struct, without using hashtables.
So, if people are really willing to add the cost of hashtable manipulation to every operation the library performs, for the benefit of more clean middle-of-the-board insertions and deletions, then so shall it be.
It's even conceivable that the hashtable handling could be turned off if it's not required. Of course, I don't know if I have the sanity to write so many static ifs...
So. Post your opinions on the matter, and I'll either get coding a hellish mixture of modulo math and hashtables, or not.