For lirc_rpi it is possible to use internal pull-up or pull-down on the LIRC input GPIO pin. The module accepts a gpio_in_pull parameter, with "(0 = off, 1 = up, 2 = down, default down)". However, this parameter is ignored. It seems like the module code does absolutely nothing with this parameter. It has a comment saying "Because of the lack of a setpull function, only support pinctrl-bcm2835 if using device tree.". I only got pull up to work by adding a dtparam=gpio_in_pull=up line after the dtoverlay=lirc-rpi line in /boot/config.txt. This still leaves /sys/module/lirc_rpi/parameters/gpio_in_pull set to the default of 2, but that's irrelevant; pull up is actually enabled.
Another possible workaround is to turn on the pull-up in Python, using something like:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.IN,pull_up_down=GPIO.PUD_UP)
I feel this is a bug because accepting and then ignoring a module parameter is misleading. People will waste time on this. Documenting the issue in a module source comment is insufficient.