It's honestly a problem with all of these bi-directional rating systems. As long as they make it at all possible for the ratings to leak before both parties have rated, there's a strong disincentive for any party to leave an honest rating.
I do know that similar systems (Uber, at least) have had issues with leaky reviews leading to retaliation. It's hard to implement a system like that, especially when your users have safety, money, and comfort on the line.
You can say a lot of honest things like "if you expect to cook, be aware that you'll need to provide your own X/Y/Z" or "The wifi didn't work for me" or "I found the bed to be uncomfortably soft" or "It's obvious that nobody has ever lived here because so many basic things are lacking". And if any host would choose to deny you based on those, then I wouldn't want to give them money.
Possible reasons for a host to deny a booking:
1) The apartment is actually unavailable. It happens sometimes. I'm not going to cry about it.
2) The host is scared that I'm going to call them out for lying in their listing. If the listing is a lie, then I don't want to stay there. If the listing isn't a lie, then a good host won't be scared by honest reviews about misleading listings.
3) The host doesn't like my face. It's unlikely but possible. Again, I don't want to give money to a person who makes judgements like that.
I've never had any difficulty finding places while staying honest. Honesty doesn't reduce the number of good hosts available. Dishonesty does increase the number of bad hosts available. I do sometimes suffer because other people were dishonest in their reviews, and it upsets me.
If I have a bad Lyft ride, I usually won't rate any lower than 4 stars, because of exactly what you're talking about, and because I know that an average rating of below something in the mid-4s can get a driver "fired". The ride may have been sub-par, but its purpose (getting me from A to B) has been fulfilled, and that's that. It's also probably on the order of single- or low-double-digit dollars, so I didn't spend too much on the bad experience. And again, the actual purpose of spending that money has been fulfilled. (Now, if a driver is actually driving unsafely, they get 1 star, plus an email to Lyft customer service, no matter what.)
If I've planned a vacation, however, and the Airbnb ended up being a bad experience, I'm absolutely going to write a bad review. I've likely spent a decent chunk of change on it, and I'm specifically spending that money (plus the money spent for transportation to get to this place) to have a good time. If the accommodations aren't as promised, and it impacts my ability to have a good time, then I'll leave an honest negative review because I haven't gotten the value I expected for that money.
I rented a place in Tahoe for New Years this year that ended up having some significant negatives. My friends and I still had a good time overall, but having to deal with the issues was frustrating and definitely detracted from our fun. It wasn't through Airbnb, so I left a detailed negative review of the management company on Yelp. I didn't feel bad about this; the people from the company I interacted with were friendly and attempted to be helpful (but fell a bit short in execution), but the cleanliness and condition of the property was below what I expected, so... bad review.
> My reason for not writing a negative review is because before staying at their place we exchanged phone numbers and other things, and now I don't feel comfortable writing a negative review and possibly having a confrontation. YMMV but I avoid writing negative reviews despite the 'double blind' review system.
Despite the double blind system, AirBnb's review system still requires you to have a certain personality. It is still quite adversarial.
Take for instance we stayed at a place recently, where we were quite upset at the ameneties of the place (and we were very certain to give them negative reviews), but during the last day, the host made a huge favor to us by keeping our luggage with them. This meant a lot for us, so we can't really leave negative reviews, however, this does not fix the problem with Host's place.
I would suggest some sort of constructive feedback system, based on different metrics, separate from the textual comment system.
Like something which allows me to say:
Amenities: 3/5 What can be improved: Stack up the toilet paper, fix the broken shower handle (Uber style feedback from multiple choice) Cleanliness: 2/5 What can be improved: Toilet wasn't clean enough Hostmanship: 4/5 What can be improved: Communication
Etc.
The rest of what you're describing is definitely tricky. The host made you guys whole by offering an extra, unexpected benefit that was worth a great deal to you. I think you're absolutely justified in giving them points for that; it's maybe even a tacit admission that they might have known they let you down on amenities and offered to go above and beyond in a different dimension to make up for it.
However (assuming for a minute that you weren't worried about a confrontation), wouldn't it make sense to just give a high star rating that reflected your overall experience (sure, you might dock a star for the missing amenities, but then add it back for helping you out with luggage storage at the end), and then in the free-form text, describe both those negatives, and the positives as well? The host would hopefully be able to take the criticism constructively as intended, and future potential guests would also note that the host can be incredibly accommodating in the face of extraordinary needs.