Are there any restrictions on the ranges used for Unicode blocks?
Yes. Every Unicode block starts with a code point of the form nnn0 and ends with a code point of the form nnnF. That is another way of saying that every block consists of some number of complete columns of characters, when seen printed out in charts. And the number of code points in every block is divisible by 16. Also, the ranges for the Unicode blocks do not extend over planes in the standard. The reasons for these restrictions have mostly to do with convenience for printing out the charts, but they also provide some minor benefits for implementations when constructing tables.