Hi Samuel,
The for_each_point function can really be seen as an algorithm, so like any other algorithm it should use not_implemented in its primary definition rather than asserting by itself. That would solve your next issue and make things cleaner.
For the metafunctions issue I'm not sure yet, to have a clearer idea could you describe the call chain that is triggering the errors in your case? I assume it's potentially an infinity of them but I'd have a clearer picture at least.
Regards
Bruno