Well, I don't know if this is at all less complicated (or an improvement), but since Moz returns a textnode for "nextSibling", this is all I could think of, for now...
Code:
<html>
<body>
<script type="text/JavaScript">
function f(el){
var tgN = document.getElementsByTagName(el.tagName);
for(var i = 0; i < tgN.length; i++){
if(tgN[i] == el){
var nextEl = tgN[i + 1];
break;}
}
if(nextEl){
var elStyle = nextEl.style;
elStyle.display != "none" ? elStyle.display = "none" : elStyle.display = "block";}
}
</script>
<p onclick="f(this)">testFunction</p>
<p>test</p>
</body>
</html>