Functional programming emphasizes pure functions with no side effects - they don't modify state (option C is false, thus 'NOT a characteristic'). Options A (higher-order functions), B (mathematical style), and D (recursion) are all true characteristics.