kuligs2 Yes, that's true. However, if you make a mistake when declaring a signal, it can be quite confusing when you revisit the code later. Something apparently not correct, but it works right...
And, consider the following scenario:
extends Control
signal test_signal3(a, b, c, d, e, f, g)
func _ready():
# suppose this is located in another script
test_signal3.connect(func(a, b): print("test_signal3:", a, b))
# you use this signal following the signal signature
test_signal3.connect(func(a, b, c, d, e, f, g): print("test_signal3:", a, b, c, d, e, f, g))
test_signal3.emit(1,2,3,4,5,6,7)
# then you will get the right output with a very confusing error: Error calling from signal 'test_signal3' to callable: 'GDScript::<anonymous lambda>': Method expected 2 arguments, but called with 7.
So I think the number of parameters should at least be checked for correctness. It seems like this isn't such an easy thing to do..