OP, I told you this would happen! It does every time the choice of languages is discussed.
In the end, the chosen HDL just takes a high level description of some piece of hardware and maps it onto LUTs. The LUTs don't change, there are just so many in each device and they are generally identical across the device but there may be variations. To argue that one language is 'faster' than another seems more a statement of the quality of the compiler (and the skill of the compiler writer) rather than a credit to a specific language.
The LUTs only work just so fast and if there are long serial strings of logic the maximum speed slows down. If you use an if-elsif-elsif-elsif-elsif-else type of priority encoder (where you really didn't mean for the logic to create a priority encoder) then, sure, it's going to be slower than if you get it done in 2 levels. When this happens, and the logic can't be rewritten, the only alternative is to force a pipeline with registers at various stages in the logic. This is the kind of thing that shows up in the RTL Schematic, you can see long strings of logic. Xilinx ISE used to report on the number of levels between registers, I haven't looked for it on Vivado but it is implicit in the Timing Report(s). But this only comes up if your design is too slow.
You aren't going to need to worry about this any time soon. There is enough to learn without trying for ultimate speed and most anything you write will probably run at 100 MHz on the new Xilinx Artix 7 devices. Not blisering fast, but impressive.
Pick a language, any language, the choice simply doesn't matter. Find tutorials that interest you and use the language used by the author. If you ever do this stuff for a living, you will probably need to be competent in all 3 languages because your employer is going to TELL you what language to use. It won't be up for negotiation because they will have their standard based on a decision made years before. So, start with any of the three and plan to learn the other two as time goes along.
The important thing to realize is that your code ultimately gets transliterated into something digestible by a LUT or series of LUTs Further, there are certain types of logic blocks that show up constantly and the most important is the MUX because any time you are selecting from more than one signal, you will likely infer a MUX. Well, darn, there aren't any MUXes in the fabric, just LUTs. The synthesizer takes you expression of a MUX and maps it to LUTs and it doesn't make a bit of difference which language you started with, you will get a MUX inside LUTs. Registers are important but they are simply clocked signals which use the D-flop inside the CLB (see below). Combinatorial logic seems pretty important but, again, that just maps to LUTs and, ultimately, there will be Finite State Machines created in either a single process model or a two process model. Generally, it is your choice unless your employer says otherwise.
So, you use some high level language to describe these high level logic blocks and the compiler maps the logic to LUTs and it doesn't make a bit of difference which language you use because, given equally talented compiler writers, the output that maps to the LUTs will be the same. You simply can't create hardware features that don't exist.
Some languages have different features or flavors but, in the end, I would expect to be able to implement any logic in any language. It may take more or less typing but it should come out the same.
Pick a language and get started.
Technically, a LUT is but one part of a CLB (Complex Logic Block) of which there may be several in a Slice. See page 19 here:
https://www.xilinx.com/support/documentation/user_guides/ug474_7Series_CLB.pdfAbove I used the term LUT rather expansively. In most cases CLB is more appropriate but when you look at synthesizer reports, they tend to talk about LUTs, not CLBs.