Besides wasting IP addresses. Is there any other compelling reason to use a /31 subnet over a /30 on Point to Point links?
I am interested from a security perspective mainly. Would a /31 be more secure?
There is no particular security advantage. RFC3021 cites addressing efficiency as the motivation for implementing /31's
You might be interested in RFC 6164: "Using 127-Bit IPv6 Prefixes on Inter-Router Links". The abstract clearly mentions security as a motivation:
On inter-router point-to-point links, it is useful, for security and other reasons, to use 127-bit IPv6 prefixes.
The security issues described are the "ping-pong issue" (routing loop) and neighbor cache exhaustion, but as mentioned in the document, for IPv4 the discussion is a bit more academic:
The ping-pong issue happens in the case of IPv4 as well. But due to the scarcity of IPv4 address space, the current practice is to assign long prefix lengths such as /30 or /31 RFC3021on point-to-point links; thus, the problem did not come to the fore.
Maybe this previous question and it's answers will make thinks clearer: