You don't internalize concepts by retrieving them from memory, you internalize concepts by reconstructing them without aids like flash cards. Otherwise you just connect the words and not the concepts.
Spaced repetition in form of testing yourself. Anki and other software help with this.
The best way to learn concepts is to first forget them and then reconstruct the facts based on previous knowledge. Spaced repetition actively hinders this process by trying to ensure that you don't forget. It is great for shallow knowledge like language, but if you are doing it for maths or programming you are just hurting yourself. That type of training is how you get people who can talk like a champ but can't even solve fizzbuzz.
It depends. Spaced repetition can be used to mindlessly memorize formulas, which I agree is not useful. Or it can be used in the way described in this article (http://cognitivemedium.com/srs-mathematics), which can lead to a deeper understanding.