There is no direct mathematical reason behind it. If our features were to be scaled on a range -10 to 10 for every variable, there would be no mistake if we made sure that there is no variable let's say A, that actually has the values (-10) or (10) while another one does not let's say B, because this would imply that feature A is inherently most important and would dominate feature B in distance based algorithms such as K-nn (distance between two datapoints would be more dependent on feature A than B). Now deep neural networks may prefer values in ranges like (-1,1) or (0,1) as inputs because they are favored by a proper parameter initialization, and providing 'larger' numbers into the network in conjunction with a saturating non-linear activation function such as sigmoid could lead to minimal, or even zero gradients back propagated into the network sooner than expected, which is antithetical to the whole learning process for NNs. Now using a range such as (-epsilon, epsilon) is cheeky, and would not hurt if done properly, however there are things to consider such as numerical stability and if I may bring forward the NN case again, it could be harder for the network to converge to a proper weight matrix in some cases.